Ready for 7.10.29 development.
This commit is contained in:
commit
c806f99b7b
4236 changed files with 1217679 additions and 0 deletions
1
.gitignore
vendored
Normal file
1
.gitignore
vendored
Normal file
|
|
@ -0,0 +1 @@
|
|||
/*.kpf
|
||||
18
.perltidyrc
Normal file
18
.perltidyrc
Normal file
|
|
@ -0,0 +1,18 @@
|
|||
-syn # Check syntax before and after
|
||||
-l=120 # maximum Line length
|
||||
-pscf=-c # Perl Syntax Check Flags
|
||||
-ole=unix # Output Line Ending
|
||||
-ci=4 # Continuation Indentation
|
||||
-sil=0 # Force starting indent level to 0
|
||||
-noll # No Outdent Long Lines
|
||||
-pt=1 # Paren Tightness (PBP style)
|
||||
-sbt=1 # Square Brace Tightness (PBP style)
|
||||
-bt=1 # Brace Tightness (PBP style)
|
||||
-bbt=1 # Code block brace tightness
|
||||
-vt=2 # Vertical tightness (PBP style)
|
||||
-nsfs # No Space For Semicolon
|
||||
-otr # Opening token right
|
||||
-sot # Stack Opening Tokens ( { [
|
||||
-bbao # Break before all operators
|
||||
-csc # Add closing side comments
|
||||
-csci=16 # Add closing side comments after 16 lines
|
||||
54
docs/changelog/0.x.x.txt
Normal file
54
docs/changelog/0.x.x.txt
Normal file
|
|
@ -0,0 +1,54 @@
|
|||
0.12.0
|
||||
- Added stylesheet classes to the menu macros added in the last version.
|
||||
- Fixed an intenting problem with the menu macros added in the last version.
|
||||
- Added a function to SQL Reports to convert the carriage returns in a resultant dataset to into HTML breaks.
|
||||
- Finished adding help to all the widgets.
|
||||
- Added widget "jump" function to move widgets from top/bottom to top/bottom of pages more quickly.
|
||||
- Added more exception handling for external DB connections.
|
||||
- When you add a widget that requires a DSN it is automatically filled in with the WebGUI DSN (changeable of course).
|
||||
- Added description and process macro fields to widgets that didn't have them, but should have.
|
||||
- Added a default title to all widgets.
|
||||
- Fixed some bugs that were causing user submissions to malfunction.
|
||||
- Added horizontal and vertical previous level menu macros.
|
||||
- Added a "make this page printable" macro and the functions to make it work.
|
||||
- Fixed a bug with displaying message ids on message board.
|
||||
- Fixed a bug where adding a user from the admin interface resulted in an invalid password.
|
||||
|
||||
0.11.0
|
||||
- Fixed a bug where the User ID macro didn't work.
|
||||
- Fixed a bug where the URL macro didn't work.
|
||||
- Fixed a formatting problem on the Events Calendar.
|
||||
- Added help for some more widgets.
|
||||
- Fixed a problem where SiteMap wasn't closing a database query properly.
|
||||
- Added a full level, 2 level, and 3 level vertical menu macro.
|
||||
- Made an exception in privilege system so that registered users can do anything visitors can do (like vote in polls marked visitor).
|
||||
- Fixed a security flaw in the Poll that would allow a user to vote who was not in the proper group.
|
||||
- Now tracking IP address in session.
|
||||
- Fixed a bug where only the first SQL Report would work on a site.
|
||||
- Reordered some syntax to allow better CSS control with FAQs.
|
||||
- Added exception handling for remote data connects in MnoGo Search system in case the content manager types in faulty connection info or the required tables don't exist.
|
||||
- Fixed a bug where message IDs weren't being properly generated for replies on message boards.
|
||||
|
||||
0.10.0
|
||||
- Added User Contributions widget.
|
||||
- You can now click on the last item in the crumb trail.
|
||||
- You can now specify the width of poll graphs.
|
||||
- Fixed a bug where editing a poll would cause many blank entries to be added to the possible answers list.
|
||||
- Fixed a bug where users were not being added to the registered users group upon creation.
|
||||
- Fixed a bug where you could not add a link to a link list.
|
||||
- Added an attachment icon for attachment links in User Contributions and Articles.
|
||||
- Fixed a bug where some of the javascript wizards weren't working due to a pathing problem.
|
||||
- Fixed a bug in polls where it would tally the results from multiple polls into one poll.
|
||||
- Fixed a bug where moving widgets and other objects could get all mixed up.
|
||||
- You can now reorder pages to your liking.
|
||||
- Added a help page for the SQL Reports widget because it's pretty complex. Hopefully we'll get to the other widgets in the near future.
|
||||
- Combined the admin and misc. menus.
|
||||
- Fixed a bug where macros weren't being processed on widget add even if the box was checked.
|
||||
- Changed events calendar layout slightly and added a style sheet entry to it.
|
||||
- Added the updated PBS look to the styles system.
|
||||
- Changed the gateway application (index.pl) to alter the @INC for easier mod_perl integration.
|
||||
|
||||
|
||||
0.9.0
|
||||
- This is the first public release of WebGUI.
|
||||
|
||||
73
docs/changelog/1.x.x.txt
Normal file
73
docs/changelog/1.x.x.txt
Normal file
|
|
@ -0,0 +1,73 @@
|
|||
1.3.1
|
||||
- Fixed a problem where pages that were cut and pasted could have an ordering problem.
|
||||
- Added a missing help icon to the SQL Report (edit).
|
||||
- Cleaned up some code in the some of the default widgets.
|
||||
- The gateway app (index.pl) can now be located in any directory by modifying two lines of code with any ordinary text editor.
|
||||
- Added a link to the help index from every help page.
|
||||
- Fixed a bug in the Syndicated Content widget where you could not edit an existing syndicated content widget due to a syntax error.
|
||||
- Fixed a bug in Syndicated Content where only the first piece of content would be displayed in each instance.
|
||||
|
||||
1.3.0
|
||||
- Added a setting to turn off anonymous user registration.
|
||||
- Some WebGUI macros are now configurable. For instance you can now format the date macro so that it will display in whatever format you choose.
|
||||
- Eliminated some additional compatibility problems for Oracle and Postgres databases.
|
||||
- WebGUI has now been verified under IIS as well as Apache.
|
||||
- Had to edit the "Last Reply" column of the Message Board widget for database compliance and as a result gave it additional functionality. It now lists the subject, date, and author of the last reply. However, it is slightly slower using this methodology. Unfortunately we can't get around it if we want to be compliant with PostgreSQL.
|
||||
- You can now use WebGUI macros in the Site Map widget.
|
||||
- You can now choose whether you want the visitor redirected to the home page or to a page not found page if the page they requested does not exist.
|
||||
- Updated the help to reflect all changes.
|
||||
- Rearranged the "Edit Page" screen to be more intuitive. Also added links to user, group, and style management from that screen.
|
||||
- Added distictive privilege messages for vital components and administrative functions. If you try to delete a component that's vital to WebGUI it tells you that you can't do that and why rather than just saying "Permission Denied!". Same goes for users trying to access administrative functions who aren't in the admin group.
|
||||
- Updated documentation to reflect a new required Perl module: Tie::CPHash.
|
||||
- WebGUI has now been verified under Postgres and Oracle.
|
||||
- Fixed a bug where syndicated content would display "$image" instead of the image itself.
|
||||
- Moved the runHourly.pl script out into the WebGUI root.
|
||||
- Modularized the WebGUI Macro system so that it can be altered and expanded by individual organizations.
|
||||
- Fixed a bug where Syndicated Content last fetched date would show in epoch rather than a date/time.
|
||||
- WebGUI 1.3.0 has reached release candidate status.
|
||||
|
||||
1.2.1
|
||||
- Fixed a couple of date related bugs in the message board that were introduced in the last release.
|
||||
- Added an update release that fixes a problem with polls for people using WebGUI since the 0.x.x releases.
|
||||
|
||||
1.2.0
|
||||
- Moved all date functions internal rather than relying upon the database for them.
|
||||
- Changed all insert and join syntax to be more database friendly.
|
||||
- Updated the "testEnvironment.pl" script to be more crash proof and to check for all types of available database drivers. We believe it's now ready to be deployed as part of the installation process. It will be added to said documentation.
|
||||
- Fixed a bug where you were unable to delete an FAQ question.
|
||||
- Fixed a bug where setting a poll to be postable by visitors could cause problems with other users voting, including other visitors.
|
||||
- Changed a few miscellaneous SQL statements for better compatibility with other databases.
|
||||
- Renamed the <b>user</b> table to <b>users</b> because the word "user" is a reserved word in some databases.
|
||||
|
||||
|
||||
1.1.0
|
||||
- Display the title? is defaultly checked on Articles.
|
||||
- Fixed a bug where a user could not update their account info.
|
||||
- Fixed a bug with the javascript image wizard.
|
||||
- Added LDAP authentication.
|
||||
- Added user level authentication schemas.
|
||||
- Updated help to include new features.
|
||||
- Added tally to the bottom of poll results.
|
||||
- Added install instructions to the distribution in addition to those already maintained on the web site.
|
||||
- Added two new menu macros for 2 and 3 level vertical menus from the current level.
|
||||
- Added a new macro that points to the current page's url.
|
||||
|
||||
1.0.1
|
||||
- Released 1.0.0 with the wrong create.sql DDL.
|
||||
|
||||
1.0.0 - Added the missing help buttons to the Search (MnoGo) and User Submission widgets.
|
||||
- Added a diagnostic tool for checking your system environment to ensure you have the correct requirements installed, that your database and config files are set up properly, and that you have the lastest version of WebGUI.
|
||||
- Changed the widget view headers from H2 to H1 as they were intended to be.
|
||||
- You can now switch admin on or off from the account menu.
|
||||
- Dates are now formatted as mm/dd/yyyy in the User Submissions widget.
|
||||
- Fixed a bug where you couldn't delete an FAQ question.
|
||||
- Changed the version information in WebGUI to reflect the Perl standards.
|
||||
- Changed the pagenation system to be database agnostic by no longer using any sort of <b>limit</b> in the SQL statement. The limit function works differently across many databases and some databases don't even have a limit function.
|
||||
- A "purge trash" function was added to the admin menu.
|
||||
- If a user makes a submission without a title, the submission is labeled as "Untitled".
|
||||
- Added exception handling to SQL Report in case the user gives us an improperly formatted SQL statment.
|
||||
- Added error handler warnings to the SQL Report and Search MnoGo systems to notify the sys admins that their users are probably not formatting things correctly.
|
||||
- Return the user to the proper page after editing an FAQ question.
|
||||
- Fixed a bug that wouldn't allow registered users to post on Polls that were set to visitor posting.
|
||||
- Added a convert carriage returns function to articles and user submissions.
|
||||
- Added a logging system for both errors and warnings.
|
||||
129
docs/changelog/2.x.x.txt
Normal file
129
docs/changelog/2.x.x.txt
Normal file
|
|
@ -0,0 +1,129 @@
|
|||
2.7.0 - Added Dutch translation (special thanks to Joeri de Bruin).
|
||||
- Fixed a bug on Help icon for Edit Article.
|
||||
- Moved international messages related to widgets into their appropriate namespaces.
|
||||
- Fixed a bug where adding an Events Calendar would add an entry to the FAQ table.
|
||||
- Added "copy" functionality to all Widgets.
|
||||
- Added a more robust module loading mechanism.
|
||||
- When a widget is purged from trash that had attachments, those attachments are now deleted as well.
|
||||
- All the WebGUI icons got a facelift.
|
||||
- Tweaked Edit, Copy, Cut, etc interface for better ease of use.
|
||||
- Admins could always do any administrative function, but they now have all privileges assigned to any group in the system.
|
||||
- Added a new Style Manager role that allows assigned users to edit styles without being an Admin.
|
||||
- Added a new group expiry system.
|
||||
- Changed the user>group linkage interface to make it easier to use and faster.
|
||||
- Added the Package Management system for easy deployment of repetitive content management tasks.
|
||||
- Added a new Package Manager role for the package management system.
|
||||
- Massive code efficiency modifications for better performance, smaller code-base, and easier readability.
|
||||
- Added several new designs to the distribution that may be used as a reference for people when building their own designs.
|
||||
- Added a "Make Page Printable" design setting and page automatically brings up the print dialog box when visited.
|
||||
|
||||
2.6.0 - Added new Item widget.
|
||||
- Added new FlexMenu macro.
|
||||
- Search engine results are now numbered.
|
||||
- Fixed a serious problem introduced in 2.5.0 where templates would crash under mod_perl.
|
||||
- Fixed a bug in the search engine where seperate results would be displayed for each keyword entered.
|
||||
- The Plain Black and Yahoo! styles are now deletable.
|
||||
|
||||
2.5.0 - Portuguese translation (Special thanks to Jose Caneira).
|
||||
- Fixed bug in the date system which put the time 1 hour ahead of actual time.
|
||||
- When a user would submit a submission to the user submission system without a title, "untitled" would be put in the title, but it was spelled incorrectly.
|
||||
- Fixed an error in the macro that potentially could have come up in the future.
|
||||
- Implemented the new page templating system.
|
||||
- Alphabetized the "content" menu for easier use.
|
||||
- Added the rich edit function to all widget descriptions.
|
||||
- Fixed a bug where an SQL Report would crash if the content manager specified an invalid query.
|
||||
- Added a limited real-time internal search engine due to popular demand.
|
||||
|
||||
2.4.0 - Added the basic infrastructure and interface to the new content management workflow system, and removed the old "pending submissions" system.
|
||||
- Fixed a bug in the LDAP interface where it would die if a user tried to create an LDAP account that didn't exist rather than just providing an error message.
|
||||
- Fixed a few bugs where SQL queries weren't always been cleaned up properly.
|
||||
- Added a new universal pagination system.
|
||||
- Added a few new sub-system utilities.
|
||||
- You can now specify who can approve User Sumissions rather than just all content managers.
|
||||
- Added the new macro system. Note to current users: You'll need to upgrade all your macros to the new version by the time we get to 3.x.x or your macros will cease to function.
|
||||
- Added much more functionality to the Site Map widget.
|
||||
- Created a universal discussion system with an API that will allow any widget to make use of it. The message board has been migrated to this new system.
|
||||
|
||||
2.3.4 - Fixed a bug in the update account method where it would save a new password even if the user didn't change it.
|
||||
- Added a partial spanish tranlation (special thanks to Ricardo Markiewicz).
|
||||
- Fixed a bug in the save attachment method where it could corrupt uploaded files on Windows systems.
|
||||
- Fixed a bug in the save attachment method where it would save the original path of an attachment on some versions of IE.
|
||||
- Added option to FAQ, Events Calendar, and Link List to go directly to add questions, events, and links after creating the instance of the widget.
|
||||
|
||||
|
||||
2.3.3 - Fixed an infinite loop bug in the International system.
|
||||
- Fixed a crash bug in the Submissions approval system.
|
||||
- Added an --install-modules option to testEnvironment.pl.
|
||||
- Added a check for new version option to the admin.
|
||||
|
||||
2.3.2 - Page names, page urls, widget titles, article link titles, event titles, link list titles, and user submission titles can now be 128 characters (instead of 30).
|
||||
- Added WebGUI version to database in anticipation of the new automated install and upgrade system.
|
||||
- Fixed a bug where adding a new link list would cause WebGUI to fault.
|
||||
- Fixed a bug where the open link in new window didn't function.
|
||||
|
||||
2.3.1 - Updated German translation (thanks to Mattias).
|
||||
- Fixed a bug where an administrator could not add users through the admin interface.
|
||||
- Fixed a bug where the user profile would display "First Name" even when it was displaying the whole name.
|
||||
- Updated the "login box" macro to include a link to the registration page.
|
||||
|
||||
2.3.0 - Added a WYSIWYG rich edit function. Unfortunately it only works for IE. Netscape must still use the old rich editor.
|
||||
- If a user were to enter an invalid date in any "set date" field (like those on the Events Calendar) WebGUI would crash. This has been fixed.
|
||||
- On a per-link basis you may choose whether a link should open in a new window in the Link List.
|
||||
- Fixed a bug where the Any Menu macro displayed the level displayed the name that was specified.
|
||||
- Renamed the Any Menu macro to the Specific Menu macro, which changed the code to ^S and ^s.
|
||||
- Fixed a compatibility problem, in Account.pm, with Postgres where they changed the LCASE function to LOWER by simply removing the case sensitivity check.
|
||||
- Added a namespace system to avoid overlap of help, internationalized messages, widgets, and database tables.
|
||||
- You can now set indent, line spacing, and the bullet for a Link List.
|
||||
- Fixed some problems where Events Calendar dates didn't span properly.
|
||||
- Events Calendar events now group if they're in the same date span.
|
||||
- Changed the "Add User" admin function to auto-select English as the default language.
|
||||
- Added the profiles system.
|
||||
- Added a link from group manager to edit users within the group.
|
||||
- Updated the "view message" layout in the Message Board and User Submission System.
|
||||
- Added a new style specifically for the trash and clipboard to make them easier to navigate.
|
||||
- Added a "become user" feature for admins.
|
||||
- Fixed a bug where the admin menu would misbehave if you were viewing the clipboard or the trash.
|
||||
- The help system is now internationalized and just needs translation.
|
||||
|
||||
2.2.0 - Fixed a bug where the "View statistics." link on the admin menu was broken.
|
||||
- Added the German translation (special thanks to Mattias Kunkel).
|
||||
- Fixed a bug where deleting an attachment or image from a user submission, would delete all others in the same widget.
|
||||
- Added a "reset poll" function to the Poll widget.
|
||||
- Separated the help for "Settings" into separate pages to map them to the individual settings pages.
|
||||
- Added a new setting to bind LDAP usernames to WebGUI usernames.
|
||||
- Fixed a bug where LDAP users were unable to update their account information.
|
||||
- Fixed a bug where LDAP users could become unable to log in.
|
||||
- Fixed a bug in "Edit File Settings" where it would crash on save.
|
||||
- Added more style information to many of the menu widgets.
|
||||
- Added a "copy" function to the style manager.
|
||||
- Fixed a bug in the "Login Box" macro that would cause it to crash.
|
||||
- Added "credits.txt" to the distribution.
|
||||
- Added a check for Net::SMTP to testEnvironment.pl.
|
||||
- Added a method of defaultly generating meta tags for your pages.
|
||||
|
||||
2.1.1 - Fixed a few spots in the widgets where items were pointing to the wrong international text id.
|
||||
- Updated all the help to match the latest version.
|
||||
- Moved the "View Statistics" link from the settings page to the Admin menu.
|
||||
|
||||
2.1.0 - Upped the maximum length of an Article from 65,000 characters to 16 million characters.
|
||||
- Added internationalization features.
|
||||
- Added a search function to the user manager.
|
||||
- Added a statistics page to the admin interface.
|
||||
- The admin may now modify the email message that gets sent to users using the "recover password" function.
|
||||
- Split the "Edit Settings" page into many pages as it was getting difficult to manage with so many settings.
|
||||
- Fixed a bug where dates were not being displayed properly in the User Submission System.
|
||||
- Made all the vertical menu macros configurable. This process has depricated many macros.
|
||||
- Added a new menu macro to allow the user to get the submenu of any page.
|
||||
- Moved the "Search (MnoGo)" widget from the default distribution to the contributions page.
|
||||
- Did a bunch of code cleanup.
|
||||
- Made changes to the javascript wizards to ensure they will work regardless of the path specified for "extras".
|
||||
- Added a check in the testEvironment.pl script for Tie::CPHash.
|
||||
- Made some changes for compatibility with Microsoft Windows platforms.
|
||||
- The online help is now drastically out of date, but that will be remedied in an upcoming version.
|
||||
|
||||
2.0.0 - Released as "stable."
|
||||
- Fixed a whole slew of bugs that were not allowing users to use the "recover password" function.
|
||||
- Warning messages in the log, as they relate to accounts, are better defined.
|
||||
- If the mail module fails to connect to the mail server indicated in settings, a warning message is now added to the WebGUI log.
|
||||
- Added a limited "recurring events" function to the events calendar. It will be updated later in rev 2.x.x to include more functionality.
|
||||
- Only users who authenticate via WebGUI can now use the "recover password" feature.
|
||||
293
docs/changelog/3.x.x.txt
Normal file
293
docs/changelog/3.x.x.txt
Normal file
|
|
@ -0,0 +1,293 @@
|
|||
3.10.1
|
||||
- Updated all styles in the distribution to use ^Extras; macro.
|
||||
- Attachment system inserts warning into the log file and returns no filename if a file could not be written due to permission or directory problem.
|
||||
- Fixed a problem in the download manager where it would not attach the 2nd alternate version of a download.
|
||||
- Disabled database connection pooling by default.
|
||||
- Fixed the URL data type in the forms package so it doesn't auto-add the http:// if a macro is present in the URL.
|
||||
- Fixed some errors in Swedish translation.
|
||||
- Fixed a bug in the Inbox that could cause it to malfunction if you specified that you wanted to receive notifications by email, email to pager, or ICQ, but did not have the values for one of those specified in your preferences.
|
||||
- Fixed a bug where 404 and 403 errors under mod perl would cause duplicate output.
|
||||
- Fixed a problem where the anti-caching string was added to the URL prematurely.
|
||||
- Fixed a bug where copying an FAQ would cause a fatal error.
|
||||
|
||||
|
||||
|
||||
|
||||
3.10.0
|
||||
- Changed help to display english by default if there is no help in the user's native language.
|
||||
- Added an option to alert someone when new users sign up.
|
||||
- Gateway is now easier to modify.
|
||||
- Fixed a bug where an invalid URL in Syndicated Content would cause the RSS parser to crash.
|
||||
- Fixed bugs in sitemap where display synopsis would not save and duplication would be erroneous.
|
||||
- Template help was pointing to style help. This was fixed.
|
||||
- Changed template engine to default wobjects to template position 0 when the template that they were using is deleted.
|
||||
- Fixed a bug where posting to a discussion would temporarily set your userId to the non privileged user "Visitor".
|
||||
- Added an advanced search engine to USS, MB, DM, and main site search.
|
||||
- Added flat reply tree view to Message Board.
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
3.9.0
|
||||
- Added an option to choose the default home page.
|
||||
- Changed Page Not Found setting to allow for any page in the site.
|
||||
- Added an option to filter javascript from user posts.
|
||||
- Rebuilt runHourly.pl to be pluggable and to run all configurations at once.
|
||||
- Rebuilt testEnvironment.pl to test all configurations.
|
||||
- Added the Notifications system to the user inbox.
|
||||
- Added the ^AdminToggle; macro.
|
||||
- Added a switch for the edit stamp in user posts.
|
||||
- Added "views" counter to all discussions and USS.
|
||||
- Added the ^URLEncode(); macro.
|
||||
- Added switches for TOC, [top], and Q/A to FAQ.
|
||||
- Added thumbnail option to User Submission System (USS).
|
||||
- All of a user's submitted items show up in main listing of USS (even pending and denied) when they are viewing the listing.
|
||||
- Approvers can now edit/delete submissions in the USS.
|
||||
- Fixed a bug where setting Display Title? to off in a Wobject would cause it to display a zero instead.
|
||||
- Fixed a bug where editing a user's profile would instead display your (the current logged in admin) profile data.
|
||||
- Added a macro loader for better performance processing macros.
|
||||
- Added ^AdminBar; macro.
|
||||
- Changed the template engine from a pluggable perl module system to a web editable interface.
|
||||
- Changed the style editor from a header/footer editor to a full body editor.
|
||||
- Added discussion to User Submission System.
|
||||
|
||||
|
||||
3.8.0
|
||||
- Set up FAQ, Link List, Download Manager, and Events Calendar to allow inline editing of their data.
|
||||
- All wobjects that have collateral data now have a "proceed" option to continue adding data. This makes data entry easier.
|
||||
- Rebuilt page editor for easier use.
|
||||
- Added ^Env(); macro.
|
||||
- Added Sweedish translation.
|
||||
- Changed urlizing mechanism to remove leading and trailing white space instead of converting to underscores.
|
||||
- Added an HTML segment filter.
|
||||
- Changed ^r; macro to allow for a configurable style.
|
||||
- Added file sizes to download manager.
|
||||
- ImageMagick is now optional. If you don't install it WebGUI will work, but you will not be able to use thumbnail features.
|
||||
- Added anti-caching meta tags while in admin mode.
|
||||
- Added support for the <a href="http://www.realobjects.de">Real Objects Edit-On Pro editor.
|
||||
- Fixed bugs introduced in 3.7.0 where you could not get to the Authentication Settings page and where updating user accounts through the admin interface would screw up the user's password.
|
||||
- Added the new Wobjects interface, rebuilt all the widgets as wobjects, and removed the widgets interface.
|
||||
- Added a new magic "Everyone" group that everyone automatically belongs to.
|
||||
- Fixed a search engine bug.
|
||||
- Fixed a critical error when a user tried to access something they didn't have privileges to.
|
||||
- Fixed a bug where some subsystems required the user to have a language specified in the profile. The system now defaults to English if none is specified.
|
||||
- Added ThumbnailLinker macro.
|
||||
|
||||
|
||||
3.7.0
|
||||
- Made Rich Edit window resizable.
|
||||
- HTTP headers now return 404 and 403 response codes when applicable in addition to the typical 200 code (thanks to Peter Beardsley for the idea).
|
||||
- Added RootTitle macro.
|
||||
- Page URLs are now generated from Menu Title rather than Page Title.
|
||||
- Added debug parameter (for developers, thanks to cmarcant).
|
||||
- Added a page tree management view that allows content managers to get an overview of the entire site on one page, and manipulate the site from that page.
|
||||
- Added a new user profile system that is completely extensible.
|
||||
- Added a new user management module for WebGUI developers.
|
||||
- Added a new typed form package to speed development for WebGUI developers.
|
||||
- Completely rebuilt the user management system using the new profile, user, and form packages.
|
||||
- Added user preferences for date format, time format, and time offset.
|
||||
- Fixed a small problem with the DateTime system where it would display 12am as 0am.
|
||||
- Fixed a bug where copying an Article could cause a fatal error.
|
||||
- Fixed a bug where copying a Download Manager would definitely cause a fatal error.
|
||||
|
||||
|
||||
3.6.5
|
||||
- Many Oracle compatibility fixes (thanks to Richard Caelius).
|
||||
- Fixed a bug where editing a page would increment the URL.
|
||||
- Fixed a bug where editing an article would delete its attachment.
|
||||
- Changed the Include macro to report a file not found error if the file specified doesn't exist.
|
||||
|
||||
3.6.4
|
||||
- Fixed a bug that caused the copy function on Message Boards to fail.
|
||||
- Fixed a bug that caused copied styles to be undeletable.
|
||||
- Updated German translation (thanks to mkunkel).
|
||||
|
||||
3.6.3
|
||||
- Fixed a bug in the mod_perl preloader that caused problems with uploads.
|
||||
- Changed user submission system images to center rather than right justify.
|
||||
- Fixed a problem in style manager where it wouldn't let admins delete default example styles.
|
||||
- Changed the login history to sort in descending order by date and the paginator to not display page numbers (because it can get VERY long very quickly.
|
||||
- Changed the menu macro to FlexMenu in Package, Trash, and Clipboard styles.
|
||||
- Changed page url creation so that it increments rather than just appending a "2" to the url to make it unique.
|
||||
|
||||
3.6.2
|
||||
- Changed add/edit page option so that page URLs can no longer end with a dot(.). This reportedly caused problems on some systems.
|
||||
- Fixed an Oracle compatibility problem in the discussion system.
|
||||
- Added ^FormParam(); macro documentation to the online help.
|
||||
- Fixed a bug where form parameters were not being passed through the pagination system of SQL Reports.
|
||||
- Fixed a bug where users could not create their own forms with textarea tags within WebGUI widgets.
|
||||
|
||||
3.6.1
|
||||
- Added an option to the message board so that visitors could post their own name if they are allowed to post.
|
||||
- Fixed a bug introduced in 3.6.0 that caused the paste method on the clipboard to malfunction.
|
||||
- Fixed an HTML syntax error on the Active Sessions page.
|
||||
- Fixed a bug introduced in 3.6.0 that caused the kill session feature to display an error message even though there was none.
|
||||
|
||||
3.6.0
|
||||
- Added an option to show debugging info or friendly messages on critical errors.
|
||||
- Added an option to remove HTML from user postings.
|
||||
- Changed session signature to random useless information rather than smart encrypted data for better security.
|
||||
- Removed a vulnerability that could allow widgets that belonged on one page to be shown on another.
|
||||
- Removed a vulnerability that in rare circumstances could allow editing by users who were not content managers.
|
||||
- Added the missing rich edit button to user submission editing.
|
||||
- Fixed a problem where you could not edit whether or not to display a synopsis on a site map.
|
||||
- Added user login log, and viewer.
|
||||
- Added a current session viewer and session killer.
|
||||
|
||||
|
||||
3.5.2
|
||||
- Fixed a bug introduced in 3.5.1 that created faulty HTML in the download manager causing old Netscape browsers to not see the DM.
|
||||
- Fixed a syntax error in the build in search engine (thanks to cmarcant).
|
||||
|
||||
3.5.1
|
||||
- Added an updates table, which will be used for automatic database upgrades in the future.
|
||||
- Changed the title on every page to display company name as well as page title.
|
||||
- Fixed a bug that created problems when trying to copy attachments that didn't exist.
|
||||
- Fixed a bug where only last item showed up in crumb trail.
|
||||
- Fixed a bug where creating new Site Map bombed.
|
||||
- Changed Download Manager to only display the search box if there are more downloads than will be shown on one page.
|
||||
|
||||
3.5.0
|
||||
- Added discussion capabilities to the Article widget which gives it Slashdot-like functionality.
|
||||
- Added a special case of "linkonly" to the ^a; ^H; and ^r; macros to return the related URL only with no HTML.
|
||||
- Added synopsis and menu title to page properties.
|
||||
- Changed all navigation macros to use menu title instead of title.
|
||||
- The SQL Report now allows for "show" and "describe" commands in addition to "select".
|
||||
- Added an option to the Site Map to display page synopsis.
|
||||
- Added a little more debugging info to the SQL Report.
|
||||
- Fixed a problem with the Rich Text editor where it would add extra DIV tags when not necessary during editing. (Special thanks to fdillon.)
|
||||
- Fixed a null error bug in SQL Report.
|
||||
- Fixed a bug in SQL Report that didn't display first data row. (Special thanks to dcolling.)
|
||||
- Fixed a syntax error in the attachment system.
|
||||
- Fixed a bug that made attachment files overwrite image files in User Submission System. (Special thanks to cmarcant.)
|
||||
- Fixed a line spacing problem in messages in Discussions.
|
||||
- Fixed incompatibilities with Oracle and Postgres in the Events Calendar and User Submission Systems.
|
||||
- Changed the Events Calendar to display the current month and date even if there are no entries in it at all.
|
||||
|
||||
|
||||
3.4.1
|
||||
- Fixed a bug that caused all pages to become roots.
|
||||
- Fixed a bug that would cause WebGUI to error if you deleted a root.
|
||||
|
||||
3.4.0
|
||||
- WebGUI widgets can be linked to within a page using their widget id as a target.
|
||||
- Added a new root management system that will enable administrators to create new page roots (like home, trash, clipboard, etc).
|
||||
- Updated German translation.
|
||||
- Added ^FormParam(); macro for accessing url GET/POST parameters. This is mostly useful in SQL Reports.
|
||||
- Added a new debugging mode to SQL Reports.
|
||||
- Added a preprocessing option for macros on SQL Reports.
|
||||
- Did much work to make SQL Reports completely bullet proof.
|
||||
- Changed RSS gathering mechanism for the Syndicated Content widget. It no longer requires the RSS document to be well formed or well balanced XML. This will allow the mechanism to retreive many more documents successfully. As a result the XML::RSS module is no longer necessary.
|
||||
- Fixed a bug introduced in 3.3.0 where selecting "View Statistics" caused a fault.
|
||||
- Fixed a bug that allowed administrators to create usernames that are longer than allowed by the login mechanism.
|
||||
- Fixed a bug introduced in 3.3.0 where an attachment uploaded to the Item widget would not work properly.
|
||||
- Fixed a bug where errors were falsely reported when using the preload script.
|
||||
- Fixed a bug the Events Calendar incorrectly paginated.
|
||||
|
||||
3.3.0
|
||||
- Completely rebuilt the attachment architecture for robustness and expandability.
|
||||
- Started adding POD documentation to all WebGUI libraries.
|
||||
- WebGUI now requires an additional Perl module called "Image::Magick".
|
||||
- Images uploaded using the attachment system are now automatically thumbnailed.
|
||||
- Completely rebuilt the pagination system for robustness and expandability.
|
||||
- Added new attachment icons for exe, psd, sit, and gz files.
|
||||
- Content Managers can now search the image archive based on name.
|
||||
- Download Manager now has an option to display thumbnails.
|
||||
- You can now specify a different config file in the gateway to run separate sites from one WebGUI installation.
|
||||
- Added a new macro called ^Thumbnail(); so you can display a thumbnail on a page.
|
||||
- The ^L; macro is now more configurable.
|
||||
- Made some changes for better Oracle compatibility.
|
||||
- Fixed a bug where WebGUI would crash if an admin tried to create a user with a ' in the username.
|
||||
|
||||
|
||||
3.2.4
|
||||
- Fixed a bug where multi-day events on the Events Calendar (calendar view) would not display the last day of the event.
|
||||
- Added a "prefer not to say" option to gender in the user profile.
|
||||
- Fixed a bug in Events Calendar where pagination didn't work under list view.
|
||||
|
||||
3.2.3
|
||||
- Fixed a broken link when insufficient privileges message is displayed.
|
||||
- Fixed a bug in the image mangager that won't let you update an image.
|
||||
- Fixed a bug in the image manager that won't let admins edit/delete images from other users.
|
||||
- Fixed a bug in the user administration where pagination wasn't working.
|
||||
|
||||
3.2.2
|
||||
- Fixed a bug in the Crumb Trail macro where the crumb trail was smashed together.
|
||||
- Fixed a bug in the Download Manager widget that prevented a user from being able to download alternate versions.
|
||||
- Fixed a bug in the Events Calendar calendar view that caused the calendar not to display unless there was at least 3 months of data.
|
||||
- Fixed a pagination problem in the Events Calendar.
|
||||
- Fixed a bug in the Events Calendar where links were generated for popups with more information even if there was no more information on that particular event.
|
||||
- Fixed a bug in the Events Calendar where the starting page was not always the current month.
|
||||
- Fixed a bug in the privilege system where a user was given a "permission denied" error message instead of a login prompt when they were not logged in on a page that required the user to be logged in.
|
||||
|
||||
3.2.1
|
||||
- We released a faulty upgrade script with 3.2.0. If you happened to be
|
||||
one of the unlucky people who upgraded to 3.2.0, apply 3.2.1
|
||||
immediately. If you didn't upgrade to 3.2.0 then all your
|
||||
upgrades will appear normal. If you installed 3.2.0 from
|
||||
scratch then <b>DO NOT EVER</b> apply the 3.2.1 upgrade!
|
||||
|
||||
3.2.0
|
||||
- Added an HTML validator option so content managers can troubleshoot display problems.
|
||||
- Added a universal sorting mechanism that can be used by any other subsystem.
|
||||
|
||||
- Added the sorting mechanism and a search to the Download Manager.
|
||||
- The "Previous / Next" buttons don't show up unless pagination is necessary.
|
||||
- Updated help to fix spelling, gramatical, and consistency errors.
|
||||
- Added an optional mechanism to prevent proxy server page caching.
|
||||
- Added delimeter option to horizontal menu macros.
|
||||
- Added limited moderation capabilities to the Message Board widget. More will be added later.
|
||||
- Added calendar layout to Events Calendar.
|
||||
- You now need to install Date::Calc and HTML::CalendarMonthSimple to use WebGUI.
|
||||
- Fixed a bug in message board edit introduced in 3.1.0.
|
||||
- Fixed a URL generation problem introduced in 3.1.0.
|
||||
|
||||
3.1.0
|
||||
- Added Download Manager widget.
|
||||
- Added file typing system for attachments.
|
||||
- Added an alignment option to images on Articles.
|
||||
- Added a mod_perl preload script to lessen memory usage and add database connection pooling.
|
||||
- Added pagination, unlimited number of returned fields, and automatic default template to SQL Report.
|
||||
- Added a PageTitle macro that simply displays the title of the current page.
|
||||
- Added an Include macro that includes the contents of a file on the local filesystem.
|
||||
- Added an Execute macro that executes a local program and then returns the results.
|
||||
- Added support for mod_rewrite (thanks to Peter Beardsley).
|
||||
- The "company name" setting is now displayed in the title bar when on the home page.
|
||||
- Added an image management system and relevant macros.
|
||||
- Help links now open in their own window.
|
||||
- Added missing labels to Events Calendar and SQL Report.
|
||||
- Fixed a bug in copying User Submission systems where attachments would not be copied.
|
||||
- Fixed a bug that caused the ^s(); macro to malfunction since 3.0.1.
|
||||
- Fixed a potential security concern for attachments.
|
||||
|
||||
3.0.3
|
||||
- Fixed a bug in Site Map that would not save the line spacing when created.
|
||||
- Fixed a bug in Poll that allowed a possible cheat of the poll.
|
||||
- Fixed a bug in user management that would not allow admins to edit users.
|
||||
- Version 3.0.2 was mistakenly released with an internal version number of 3.0.1, which would cause a version check to mistakenly identify itself.
|
||||
|
||||
|
||||
3.0.2
|
||||
- Fixed a bug where the widget copy function would corrupt files under Win32 systems.
|
||||
- Fixed a bug where some proprietery characters posted through Widget forms could cause WebGUI to crash.
|
||||
- Changed some field names in the data dictionary for conformity.
|
||||
- Added some missing primary keys.
|
||||
|
||||
|
||||
3.0.1
|
||||
- Removed deprecated macro syntax.
|
||||
- Fixed a problem with the widget table that made it incompatible with Postgres.
|
||||
- Fixed a problem with the User Submission system (introduced in 2.7.0) that caused the property titles to not be displayed.
|
||||
- Fixed a permissions problem where Style Managers could not actually edit styles.
|
||||
- Added user ID and group ID listings to their respective managers.
|
||||
- Fixed a problem where the duplicate method of some widgets would pull the data from the wrong original widget.
|
||||
|
||||
3.0.0
|
||||
- Minor fixes and tweaks to the built in styles.
|
||||
- The WebGUI style is now the default style.
|
||||
- Fixed a bug where duplicate usernames could be created by an administrator.
|
||||
- Fixed a bug where duplicate page names could be created by the package management system.
|
||||
- Fixed a bug where blank page names could be created.
|
||||
|
||||
497
docs/changelog/4.x.x.txt
Normal file
497
docs/changelog/4.x.x.txt
Normal file
|
|
@ -0,0 +1,497 @@
|
|||
4.9.5
|
||||
- Fixed a bug where creating a template caused a crash bug.
|
||||
- Fixed a crash bug in LDAP anonymous registration.
|
||||
- Fixed a bug in Site Map where the properties page would not hold the "All Roots" option.
|
||||
- Fixed the survey bug where surveys were automatically completed.
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
4.9.4
|
||||
- Fixed a bug that would crash the survey when it had no questions.
|
||||
- Made macro toolbar match the help.
|
||||
- Fixed a syntax error in the DateTime module.
|
||||
- Changed macro engine not to produce a fatal error if one macro failed.
|
||||
- Fixed a bug that occurred when editing the root folder in the collateral manager.
|
||||
- Fixed a layout bug in the WebGUI 5 style.
|
||||
- Changed the upgrade script to get its variables from the config file.
|
||||
- Fixed POD formatting.
|
||||
- Enabled International message and page caching to increase performance.
|
||||
- Fixed a bug in the statistics system caused when adding a new wobject.
|
||||
- Fixed a bug in international toolbar system where it required the user to have their extras folder in a www folder.
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
4.9.3
|
||||
- Rewrote image importer for simplicity and to work with the new collateral managment system.
|
||||
- Fixed bug where ^L(); macro would show visitor as a logged in user.
|
||||
- Fixed a bug where the calendar was displaying more months than it should.
|
||||
- Fixed some date math bugs in the DateTime package.
|
||||
- Fixed a bug where an event would be lost forever if the end date was less than the start date.
|
||||
- Fixed another Internet Explorer cookie bug.
|
||||
- Converted template manager to use standard admin navigation.
|
||||
- Fixed a bug where Page Tree and ^rootmenu(); could potentially display system level roots.
|
||||
- Documented the remainder of WebGUI's API in perldoc.
|
||||
- Fixed SiteMap to display roots properly.
|
||||
- Changed active sessions page not to display visitor sessions.
|
||||
- Fixed a bug where the rich editor wasn't showing up on USS submissions.
|
||||
- Removed previousVersion.sql and the upgrade scripts from versions prior to 3.0.0 to reduce the size of the distribution.
|
||||
- Fixed crash bug in Template engine when an invalid template is specified.
|
||||
- Fixed a bunch of incompatibilities for Postgres.
|
||||
- Updated dutch translation thanks to ProcoliX.
|
||||
- Fixed a bug where the system would crash if a submission in the USS that was requested didn't exist.
|
||||
- Removed the rich editor from the style and template edit screens.
|
||||
- Disabled the "edit this template" functionality on wobject editing until it can be implemented in a more robust manner.
|
||||
- Changed Events Calendar so events don't show edit icons when user doesn't have privileges to edit.
|
||||
- Fixed templates for XHTML correctness and compatibility with Netscape 4.
|
||||
- Fixed a bug in the weblog where it displayed the description twice.
|
||||
- Fixed a bug where users couldn't change their password.
|
||||
- Fixed a bug where you could not change an uploaded image in the collateral management system.
|
||||
- Changed account options so that it doesn't display the link for the page you are currently on.
|
||||
- Fixed a typo in the 4.9.2 release of the gotchas file.
|
||||
- Changed wobjects to return to the page by default after adding collateral.
|
||||
- Fixed a bug where you were unable to delete a file from the file manager.
|
||||
- Changed account options not to display "Please deactiveate my account...." if you are an admin.
|
||||
- Updated testEnvironment.pl to reflect new package requirements.
|
||||
- Added mod_perl 2 statement to preload.perl.
|
||||
- No longer show recursive page options or management options that don't make sense.
|
||||
- Added the survey wobject via the fund a feature program.
|
||||
- Added debug output for SQL queries.
|
||||
- Eliminated many unnecessary and redundant database queries.
|
||||
- Synopsis macro now returns all levels if called with no max level.
|
||||
- Clarified various messages.
|
||||
- Fixed a file manager template bug.
|
||||
- Fixed a form quoting bug.
|
||||
- Made session id's more unique. The old way could duplicate identical ids under heavy load.
|
||||
- Updated the dutch translation thanks to ProcoliX.
|
||||
- Updated the spanish translation thanks to AGOFER Ltda.
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
4.9.2
|
||||
- Fixed an authentication settings bug.
|
||||
- Fixed a bug where the system would crash if you tried to recover your password.
|
||||
- Fixed a bug where adding a new template could cause WebGUI to crash in some circumstances.
|
||||
- Updated dutch translation thanks to Bart Jol.
|
||||
- Fixed a potential bug with quickHash and quickHashRef returning nulls.
|
||||
|
||||
- Readded a couple of the old rich editors.
|
||||
- Internationalized the new auth system.
|
||||
- Fixed the LDAP authentication module login.
|
||||
- Added an index to the events calendar to speed it up.
|
||||
- Fixed a problem migrating from image groups to collateral folders.
|
||||
- Fixed various inconsequential events calendar bugs.
|
||||
- Fixed a problem where events list wouldn't show the first date if the date was today.
|
||||
- Fixed a bug where you could delete templates that you should not be able to delete.
|
||||
|
||||
|
||||
4.9.1
|
||||
- New roots now base themselves on the settings of the default page.
|
||||
- Added a missing image from the new style.
|
||||
- Added indexes to speed up large message boards and USS.
|
||||
- Added an index to the mail form storage for faster queries against it.
|
||||
- Fixed a bug in the thumbnailer.pl script thanks to Michael Henry where images with upper case extensions weren't being thumbnailed.
|
||||
- Updated the imImport.pl script for compatiblity with the new collateral management system.
|
||||
- Updated the userImport.pl script for compatibility with the new pluggable authentication system.
|
||||
- Fixed a bug where recursively changing privileges or styles could affect pages it wasn't supposed to.
|
||||
- Fixed a bug where Swedish was always the default language for every page.
|
||||
- Fixed an email bug that occured with some versions of Net::SMTP.
|
||||
- Fixed the Internet Explorer cookie bug.
|
||||
- Fixed a bug where changing the parameters of a file in the File Manager would delete the file.
|
||||
- Fixed some typos in some of the templates.
|
||||
- Fixed an account update bug.
|
||||
- Fixed a bug where the add content menu was not ordered properly in languages other than english.
|
||||
- Fixed a content preview bug in the collateral system.
|
||||
- Reworked pluggable auth for better extensibility and robustness.
|
||||
- Fixed a bug where the UI would show the old username for one page after the user updated his username.
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
4.9.0
|
||||
- Updated the help to match all of the recent changes.
|
||||
- Made fixes for Mac OSX compatibility.
|
||||
- Visitors are now given sessions just like regular users. This will enable developers to build visitor driven apps such as shopping carts.
|
||||
- Added email footer setting.
|
||||
- Added "next action" to page properties.
|
||||
- Added per-page language settings.
|
||||
- Added user status (thanks to Martin Kamberbeek).
|
||||
- Converted user manager to use new scratch and pagination systems for better control and speed.
|
||||
- Added thumbnail resizing to collateral manager (thanks to Martin Kamberbeek).
|
||||
- Added the new WebGUI 5 style and propaganda.
|
||||
- Redirect pages now preprocess macros on the URL before redirecting.
|
||||
- Added Tie::IxHash, Tie::CPHash, and Net::LDAP to the default distribution to make installs easier.
|
||||
- Added Russian translation (thanks to Natalia Almazova)
|
||||
- Added pluggable authentication (thanks to Martin Kamberbeek)
|
||||
- Fixed various bugs introduced during the previous two development cycles.
|
||||
- Default format for SQL macro is now ^0;
|
||||
- You can now use special characters safely.
|
||||
- You can now use form elements in textareas safely.
|
||||
- Added new rich text editor (thanks to interactivetools.com).
|
||||
- Added macro toolbar to the rich text editor (thanks to Len Kranendonk).
|
||||
- Added new SMB authentication method (thanks to Martin Kamberbeek)
|
||||
- Templatized the Events Calendar, Site Map, Message Board, Link List, and File Manager wobjects.
|
||||
- Added a small calendar view to the Events Calendar wobject.
|
||||
- Added many specialized properties to the Events Calendar for better control.
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
4.8.0
|
||||
- Updated the Danish translation (thanks to Michael Ugilt).
|
||||
- Fixed a bug copying templates.
|
||||
- You know longer see the "Manage Templates" link unless you can actually manage templates.
|
||||
- Added comma and tab delimited export functions to SQL handler.
|
||||
- Added groups of groups.
|
||||
- Added email to group.
|
||||
- Added a new collateral management system to replace the image manager. The collateral managment system allows you to upload arbitrary files, and text snippets, as well as images.
|
||||
- Cleaned up the code and UI of the administrative functions.
|
||||
- Added page statistics tracking.
|
||||
- Templatized Article.
|
||||
- Added session scratch variables.
|
||||
- Added more new toolbar icon sets.
|
||||
- Added an icon set chooser to the translations manager.
|
||||
- Fixed a bug where message boards were not displaying their full listing.
|
||||
- Made changes for mod_perl 2.0 compatibility.
|
||||
- Added user count to group listing.
|
||||
- SQL Report now reuses DB connection if same as site DB connection.
|
||||
- Added classifieds and guest book templates to the USS.
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
4.7.0
|
||||
- Converted Item, Product, USS, and FAQ to use the new template system.
|
||||
- Paginator can now paginate arbitrary data sets.
|
||||
- Paginator is now approximately 200% faster and uses about 600% less memory.
|
||||
- Fixed a bug in image group pagination.
|
||||
- Added new Smooth Blues style thanks to Chris Gebhardt at OpenServe.
|
||||
- Added new toolbar icon set.
|
||||
- Added per language settings for toolbar icon sets.
|
||||
- Fixed a small bug where pagination did not retain the keyword when searching on the user list.
|
||||
- Added privilege caching to speed up privilege queries.
|
||||
- Fixed a bug where users with no specified email address could still attempt to recover their password and inadvertantly change the password of another user.
|
||||
- Added Arabic support thanks to Ehab Heikal.
|
||||
- Added support for approximately 30 new attachment types.
|
||||
- Added "action2" mechanism for dual action operations and functions.
|
||||
- Added a hook to allow developers to set the filename of non-html content generated by WebGUI.
|
||||
- The date macro can now accept a second parameter, which is and epoch value. Still defaults to now.
|
||||
- Fixed a bug that occured when WebGUI retrieved the name of the day in a date output.
|
||||
- New HTML::Template engine has been added to allow for better customization of styles, page templates, and wobject interfaces.
|
||||
- Usernames can no longer contain special characters that can cause problems with some systems.
|
||||
- A lot of redundant code cleanup in the existing wobjects.
|
||||
- Form output has been cleaned up so that the HTML is more readable.
|
||||
- Forms package has been separated into basic form elements and the power forms of the HTMLForm package. This should speed the development of custom forms for developers.
|
||||
- Forms, Preferences, Wobjects, and Pages all include UI Levels in order to "dumb down" the interface.
|
||||
- Updated all wobjects, incrementers, and tables to conform to namespace standards.
|
||||
- Added an upgrade utility to make upgrading WebGUI easier, especially on a server with multiple sites.
|
||||
- Added a scheduler plugin to sync LDAP properties with WebGUI user profiles.
|
||||
- Added a utility to rethumbnail your WebGUI images.
|
||||
- Added a scheduler plugin to move expired content to the trash.
|
||||
- Added a scheduler plugin to delete expired events calendar events.
|
||||
- Added a utility to import users from a flat file.
|
||||
- Added a scheduler plugin to delete expired groupings.
|
||||
- Added a utility to import a directory of images into the image manager.
|
||||
- Added a scheduler plugin to decay karma.
|
||||
- Added a utility to import a directory of files into a download manager.
|
||||
- Added a scheduler plugin to empty the trash automatically.
|
||||
- Added a scheduler plugin to clean out the user login log.
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
4.6.9
|
||||
- Updated the Sweedish translation (thanks to info@rit.se)
|
||||
- Updated the Dutch translation (thanks to info@procolix.com)
|
||||
- Fixed a very obsure and unlikely security hole just in case.
|
||||
- Fixed a bug in the translation manager that caused "missing" elements to be uneditable.
|
||||
- Fixed a bug in the AdminText macro that caused it to not function at all.
|
||||
- Fixed a bug in SQL Report where all wobjects on the page that could paginate would paginate when the SQL Report paginated.
|
||||
- Fixed more Chinese character set problems on the Poll.
|
||||
- Changed the email form type to do validation onChange rather than onBlur.
|
||||
- Fixed a duplicate entry error in the messaging system.
|
||||
|
||||
|
||||
|
||||
4.6.8
|
||||
- Fixed a bug where under certain versions of Perl, on SQL Reports that used the ^FormParam(); macro, the pagination function would sometimes fail.
|
||||
- Removed a setting that should no longer have been.
|
||||
- Added better error handling of malfunctioning wobjects.
|
||||
- Fixed an Attachment bug that would cause a fatal error when only a warning should have been generated.
|
||||
- Fixed a bug where attachments larger than the max attachment size could be uploaded.
|
||||
- Fixed some problems with the Poll wobject in the Chinese language.
|
||||
- Several Oracle compatibility fixes.
|
||||
- Fixed a bug in the translations manager where all messages were always marked "Out of Date".
|
||||
- Fixed a major security flaw where it was possible to execute commands on the server. Special thanks to Len Kranendonk for discovering and reporting this defect.
|
||||
- Username can no longer start or end with a space.
|
||||
|
||||
|
||||
|
||||
4.6.7
|
||||
- Added some missing documentation to the forms package.
|
||||
|
||||
- Added a workaround for a bug in mod_perl (win32).
|
||||
- Fixed a spacing problem with the ^L; macro.
|
||||
- Made significant performance and UI improvements in Translation manager, and fixed an edit bug.
|
||||
- Added some missing help for the USS.
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
4.6.6
|
||||
- Fixed a bug in the SQL Report where a fatal error would occur if the user used a database driver that didn't exist.
|
||||
- Restored the Danish translation. (Special thanks to Michael Ugilt.)
|
||||
- Updated the German translation. (Special thanks to Mattias Kunkel)
|
||||
- Fixed a small translation manager sorting problem. (Special thanks to Koen de Jonge)
|
||||
- Changed thumbnailer so that it no longer scales images up that are smaller than the thumbnail size.
|
||||
- Fixed a bug where Session variables were displayed on fatal error even if debug was not turned on.
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
4.6.5
|
||||
- Content Managers can no longer view pages in the "Manage Page Tree" if they cannot edit them.
|
||||
- Fixed a bug where USS submitters could not edit their own submissions.
|
||||
|
||||
|
||||
|
||||
4.6.4
|
||||
- Readded the Macro help that was accidentally deleted in 4.6.3.
|
||||
- Due to popular demand, changed the wobject table to include 5 user definable fields so that external data can be married with WebGUI wobject data.
|
||||
|
||||
4.6.3
|
||||
- Fixed an upgrade bug.
|
||||
- Added more debug when macros fail to compile.
|
||||
|
||||
|
||||
4.6.2
|
||||
- Fixed a navigation bug where everything was labeled as the selected menu item.
|
||||
- Fixed a problem with the D macro.
|
||||
- Updated the Dutch translation. (Special thanks to ProcoliX)
|
||||
- Added the Chinese (Traditional) translation. (Special thanks to orosor@yahoo.com.tw)
|
||||
- Fixed a bug where admins couldn't delete attachments or images from the USS.
|
||||
- Fixed a bug where having poll with no answers would cause the poll wobject to crash.
|
||||
- Fixed a bug where the reset votes option in the poll would become mangled if the anti-caching mechanism was enabled.
|
||||
- Fixed a bug where redirects would cause WebGUI to crash if the user had installed the latest version of CGI.pm.
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
4.6.1
|
||||
- Massive fixes to restore compatibility with Postgres.
|
||||
- Fixed some spelling errors in the debugging.
|
||||
- Made the audit trail make more sense.
|
||||
- Allowed slashes "/" in page names.
|
||||
- Made sure that the LoginToggle macro was included in this release since we forgot to include it in the last.
|
||||
- Fixed a bug where the visitor user was receiving unnecessary messages in it's inbox.
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
4.6.0
|
||||
- Fixed the column sorting bug on the download manager.
|
||||
- Added the SQL macro.
|
||||
- Edit controls no longer show up when a user does not have the privileges to edit a particular page.
|
||||
- Added some additional methods to the wobject superclass for cleaner code in the subclasses.
|
||||
- Added a basic audit trail to the log.
|
||||
- Added the missing radio method from the forms package.
|
||||
|
||||
- Fixed a bug in the Product wobject where a new wobject would start with a product template other than the default.
|
||||
- Added the LoginToggle macro.
|
||||
- Changed the AdminToggle macro to support alternate messages.
|
||||
- Fixed a bug with the checkbox method in the forms package where overriding the value to "0" wouldn't work.
|
||||
|
||||
|
||||
|
||||
|
||||
4.5.0
|
||||
- Updated help to remove unnecessary HTML and be more accurate.
|
||||
- Added a redirect option to pages.
|
||||
- Changed to URL form type to only add http:// if it can find a dot (.) in the url.
|
||||
|
||||
- Fixed a small security hole where a user could potentially view collateral data of a wobject if they knew the right URL.
|
||||
- Added centralized navigation generator and updated old navigation elements to use it.
|
||||
- Several code efficiency improvements.
|
||||
- Fixed a bug where placing a package would result in pages and wobjects in the wrong order.
|
||||
- Fixed a bug where placing a package would cause a fatal error.
|
||||
- Added product templates.
|
||||
- Added benefits column to product templates.
|
||||
- Added overrides for the privileges associated with image, style, and template management.
|
||||
- Added a debugging toggle to the settings to help WebGUI developers debug their code.
|
||||
- Members of the admins group who are not part of the content managers group can now own pages, just like content managers.
|
||||
- Admins can no longer remove themselves from the admins group. However, one admin can remove another admin. The default "Admin" user cannot be removed from the admins group.
|
||||
- Added perldoc for several core modules.
|
||||
- Date form elements are now restricted to 10 characters and integers are restricted to 11 characters (better client side validation) .
|
||||
- Added an interval data type to the forms package and updated all the other packages that should be using it.
|
||||
- Wobjects now inherit their start and end dates from their parent page.
|
||||
- Poll answers can now be randomized.
|
||||
- WebGUI user is now added to web server access log under mod_perl (accurate user tracking!)
|
||||
- HTML::CalendarMonthSimple is no longer required to be installed on your WebGUI server, because it now comes with the WebGUI distribution.
|
||||
- Changed MailForm dropdown options to remain ordered.
|
||||
- Several mod_perl performance tweaks.
|
||||
- Date and time operations are now more accurate, precise, and should be a little bit faster.
|
||||
- Events Calendar now supports weeks starting on Monday (European Format) rather than Sunday (American Format).
|
||||
- Events Calendars now have unlimited recurring events options.
|
||||
- You can now choose to delete just a single event, or all of its recurrences.
|
||||
- Events Calendar headers are now internationalized.
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
4.4.1
|
||||
- Changed the user profile editor to check the validity of the stored value against the profile settings keys prior to using it as default.
|
||||
- Fixed a bug where copying USS or MB would cause a fault.
|
||||
- Fixed a bug where editing user profiles could cause admin's profile to be copied to another user's profile.
|
||||
- Fixed a bug where multiple users in a group would not receive messages through the built-in messaging system.
|
||||
- Added a temporary fix to allow people who are used to content managers being able to use the image manager to continue to allow CMs to do so. This fix will be replaced with a permanent solution in the next release.
|
||||
- After removing a user from a group, you are now returned to the user group page rather than the user account page.
|
||||
- Swapped copy/cut to cut/copy on wobject.
|
||||
- Changed the MailForm wobject to use the built in mail system to avoid complications and add simplicity.
|
||||
- Removed unnecessary pre tags from the Execute macro.
|
||||
- Added explaination to unable to open log file error message.
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
4.4.0
|
||||
- Added an options to exclude wobjects, macros, and hourly plugins.
|
||||
- Added User macro.
|
||||
- Fixed a problem where a user's password would be changed even if they didn't want it changed when they updated their account info.
|
||||
|
||||
|
||||
|
||||
|
||||
4.3.0
|
||||
- Fixed a bug in the help editor where it would save the action in the object field.
|
||||
- Added an Italian translation.
|
||||
- Added a new WebGUI style.
|
||||
- Moved the "extras", "uploadsURL", and "uploadsPath" settings to the config file for easier installation.
|
||||
- Updated testEvironment.pl for more improved testing of config files.
|
||||
- Fixed a couple spelling errors.
|
||||
- Added feature to expire pages.
|
||||
- Added edit/delete options to "Manage page tree."
|
||||
- Re-engineered the help system for better usability and translation.
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
4.2.0
|
||||
- Fixed a bug where Edit FAQ header and help icon weren't being displayed.
|
||||
- Fixed a bug where meta tags weren't being saved.
|
||||
- Added "Run On Registration" option.
|
||||
- Added thread locking to discussions.
|
||||
- Added pre-emptive moderation to discussions.
|
||||
- Added karma listing to account display.
|
||||
- Added GroupText and AdminText macros.
|
||||
- Added previous/next buttons to USS.
|
||||
- Added Product wobject.
|
||||
- Added a maximum image size setting that will resize uploaded images that are too big.
|
||||
- Added Wobject Proxy wobject.
|
||||
- Added an option to use sendmail directly rather than the SMTP protocol.
|
||||
- Updated languages engine to support multiple character sets.
|
||||
- Added Chinese translation (special thanks to Zhou Xiaopeng).
|
||||
- Added Mail Form wobject.
|
||||
- Added translations manager.
|
||||
- Update the user/group manager for better usability.
|
||||
|
||||
|
||||
|
||||
|
||||
4.1.0
|
||||
- Changed discussion system so the "Re:" on replies is not repeated.
|
||||
- Added the karma system.
|
||||
- Added ^rootmenu(); macro.
|
||||
- Added stylesheet class and id for wobject types and wobject ids for better style controls.
|
||||
- URLs can now have a trailing slash.
|
||||
- Multiple cookies can be set at once.
|
||||
- The notification system is now capable of lengthy mesages.
|
||||
- Added an image grouping system.
|
||||
|
||||
|
||||
4.0.5
|
||||
- Fixed two bugs in the USS. One where any user could see pending and denied submissions through the search utility. Another where searching would return only one result.
|
||||
|
||||
4.0.4
|
||||
- Fixed a bug introduced in the last version that caused extra carriage returns to be added unncessarily to posted content.
|
||||
- Fixed a bug where visitors could post to the User Submission System.
|
||||
- Fixed a bug where menu items were displayed on the Message Board even if the user didn't have privileges to use those items.
|
||||
|
||||
|
||||
|
||||
|
||||
4.0.3
|
||||
- Fixed a bug where editing Article content on a mac could cause problems.
|
||||
- Fixed a bug where cutting/pasting a wobject from a page with fewer template postions than the wobject was set to, would cause the wobject to become invisible.
|
||||
- Fixed a bug where changing a template position to lower than the wobjects on a page would cause those wobjects to disappear.
|
||||
- Changed attachment system so that it no longer lowercases attachment names.
|
||||
- Added class=verticalMenu to the td tags generated by FlexMenu.
|
||||
- Updated icons for Visio, Autocad, Perl Modules, and SQL files.
|
||||
- A couple formatting changes to testEnvironment.pl.
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
4.0.2
|
||||
- Updated macro help to fix a documentation problem.
|
||||
- Fixed a bug where a number was artificially added to an image uploaded to the image manager.
|
||||
|
||||
|
||||
|
||||
|
||||
4.0.1
|
||||
- Fixed a bug that generated a cosmetic error on Win32 platforms when runHourly.pl was run.
|
||||
- Changed the search engine to filter out pages the user doesn't have permission to view.
|
||||
- Fixed a pagination bug on the search engine.
|
||||
- Fixed a bug where you'd get duplicate display if a 403 error occured.
|
||||
- Fixed a page sequencing problem where sequence numbers were being generated from the page's parent rather than the page itself.
|
||||
|
||||
|
||||
4.0.0
|
||||
- Fixed a bug where insufficent privileges messages would cause duplicate output under mod_perl.
|
||||
- Image names in the image manager are now guaranteed unique.
|
||||
- Updated Dutch translation.
|
||||
- Fixed a bug where message board would display first message in the thread twice in "flat" view.
|
||||
- Fixed a bug where the style header wouldn't display on make page printable.
|
||||
- Gracefully die on errors where plugins don't compile or follow API.
|
||||
- Improved performance in USS with large amounts of submissions.
|
||||
- Enhanced file related error logging.
|
||||
- Fixed a bug that would not allow an admin to change the web attachment folder.
|
||||
|
||||
|
||||
700
docs/changelog/5.x.x.txt
Normal file
700
docs/changelog/5.x.x.txt
Normal file
|
|
@ -0,0 +1,700 @@
|
|||
5.5.8
|
||||
- bugfix [ 991366 ] 5.5.7 typo in Macro/Synopsis.pm
|
||||
- bugfix [ 992018 ] Synopsis(); macro generates error
|
||||
|
||||
5.5.7
|
||||
- bugfix [ 935552 ] USS bug (w/ and w/o img mixed posts).
|
||||
- bugfix [ 926610 ] WebGUI::Wobject::Article
|
||||
- Bugfix [ 942865 ] urlizedTitle problem. (Thanks to tr0nd).
|
||||
- Fixed a possible counting problem when looking for an infinite loop in
|
||||
groups of groups.
|
||||
- Fixed a bug in the LDAP module that required the RDN to be a URL.
|
||||
- bugfix [962196] addHTTP problem.
|
||||
- bugfix [962224] WebGUI::Operation::Statistics
|
||||
- bugfix [966470] WebGUI::User. Session not properly killed when deleting user.
|
||||
- bugfix [966466] WebGUI::Session. System crash when user language missing.
|
||||
- bugfix [ 981059 ] WebGUI vs perl 5.8.4
|
||||
- bugfix [ 975609 ] The form field for phone and email do not support maxlength
|
||||
(Thanks to Junying Du).
|
||||
- bugfix [ 938266 ] Fix: 5.5.4 Synopsis ignores hideFromNav (Thanks to
|
||||
Nicklous Roberts.)
|
||||
- bugfix [ 961056 ] pages erroneously owned by visitor
|
||||
- bugfix [ 913847 ] Minutes on times can not be updated.
|
||||
- bugfix [ 939070 ] 5.5.4: Macros do not work in DataForm fields
|
||||
|
||||
|
||||
|
||||
5.5.6
|
||||
- bugfix [ 895067 ] Forum ID Missing In USS
|
||||
- bugfix [ 909688 ] USS forum post edit function not work
|
||||
- bugfix [ 910514 ] Article Discussion - Not reporting correctly
|
||||
- Bugfix [ 917535 ] 5.5.5 HTMLEdit - Insert Image Not Functional
|
||||
- bugfix [ 912404 ] Visitors can turn admin on
|
||||
- bugfix [ 917913, 915019, 913999, 912765, 912206 ] OwnerId was not set correctly
|
||||
when saving page.
|
||||
- Bugfix [ 884375 ] Fix for multiple forum posts applied also to
|
||||
www_viewForum to handle postings that start a new thread.
|
||||
- Bugfix [ 909579 ] possible package problem 5.5.4
|
||||
- Bugfix [ 918136 ] upgrade to 5.5.5 sql inserts wrong version number
|
||||
- Bugfix [ 917338 ] Typo in 5.5.5 Email Data Form
|
||||
- Bugfix [ 932243 ] Security bug: Env Host can be spoofed
|
||||
- Bugfix [ 913525 ] Beg. / End Dates of WObjects
|
||||
- Bugfix [ 927530 ] bugfix FormProcessor email checking change
|
||||
|
||||
|
||||
|
||||
5.5.5
|
||||
- Fixed a bug in AdminBar's clipboard code where a standard hash was
|
||||
used instead of a CPHash for database access. (Thanks to Steve Simms.)
|
||||
- When copying a Wobject to a clipboard, the previous location was
|
||||
not stored correctly. (Thanks to Steve Smms.)
|
||||
- Fixed a problem in the forum that showed up under Postgres.
|
||||
- Bugfix [ 822805 ] Emptying trash can cause fatal error
|
||||
(Thanks to Steve Simms.)
|
||||
- Bugfix [ 870681 ] Wobject start/end dates change when editing wobject
|
||||
- Bugfix [ 877999 ] runHourly.pl crashes server when no db
|
||||
- Fixed a timing bug in the run hourly script
|
||||
- Bugfix [ 903064 ] article won't display after edit
|
||||
- Bugfix [ 903063 ] weird url cause page to break
|
||||
- Bugfix [ 889761 ] Editing Page/Wobject Settings Crashes Netscape 4
|
||||
- Bugfix [ 878601 ] ui level and page owner bug
|
||||
- Bugfix [ 881586 ] Forum overview
|
||||
- bugfix [ 881599 ] edit Posts
|
||||
- Bugfix [ 883909 ] font family for contentType code in forum
|
||||
- bugfix [ 884372 ] $session{header}{redirect} bug under mod_perl
|
||||
- Bugfix [ 884375 ] Fix for multiple forum posts caused by browser Refresh
|
||||
- Bugfix [ 886432 ] endless loop in group of groups
|
||||
- bugfix [ 887447 ] editing messages
|
||||
- Bugfix [ 893203 ] IO::Zlib not getting installed
|
||||
- Bugfix [ 893556 ] TabForm bug: uiLevels not working
|
||||
- Bugfix [ 894855 ] users cannot delete from message board
|
||||
- Added the Polish translation. (Thanks to Indigo-Profit-Hosting.)
|
||||
- Added an expires flag to HTTP header when prevent proxy cache is turned on.
|
||||
|
||||
|
||||
|
||||
5.5.4
|
||||
- Bugfix [ 849210 ] Login Redirect should filter out the "logout" operation
|
||||
- Bugfix 859816 : DataForm - security issues. Tnx Gabor for reporting.
|
||||
- ^t; now starts in current root rather then in site root.
|
||||
- Bugfix [ 867047 ] cannot delete Redirect URL. Thanks to Klaus Hertle.
|
||||
- Bugfix [ 864535 ] Secondary admin adds user to group
|
||||
- Bugfix [ 864537 ] Secondary admin adds user to group #2
|
||||
- Bugfix [ 859199 ] Login problem
|
||||
- Bugfix [ 852930 ] Pieces of Collateral Statistic always zero. Thanks to ajaman.
|
||||
- Bugfix [ 854124 ] Can't reply to discussion message for USS submission.
|
||||
- Fixed a bug in form processor that caused legal email addy's with funny
|
||||
characters to fail the check.
|
||||
- Bugfix [ 855228 ] word wrap not working when posting as text
|
||||
- Bugfix [ 855632 ] SyndicatedContent crashs when rss contains only one item
|
||||
(Thanks to Len Kranendonk)
|
||||
- Bugfix [ 855682 ] USS rss feed shows unapproved items
|
||||
- Bugfix [ 855684 ] USS: no approvement check
|
||||
- Bugfix [ 826864 ] Endless recursion
|
||||
- Bugfix [ 855968 ] search shows deleted messages
|
||||
- Fixed a bug that wouldn't allow urls like ldap://some.server and
|
||||
https://some.server to work in a url field
|
||||
- Bugfix [ 852024 ] Can't copy a USS wobject (Thanks to Len Kranendonk)
|
||||
- Bugfix [ 849438 ] Adding Wobject Fails for Content Managers
|
||||
- Updated the Italian translation. (Thanks to Paolo Pigati.)
|
||||
- Updated the Italian translation. (Thanks to ProcoliX.)
|
||||
- Bugfix [ 870209 ] Calendar times thrown off by user's offset.
|
||||
|
||||
|
||||
5.5.3
|
||||
- Lowercase file extension in importCollateral.pl while determinating file
|
||||
type.
|
||||
- Fixed a typo in the Forum Threads that caused an error upon deleting a
|
||||
post.
|
||||
- Bugfix [ 847198 ] no final newline when data form errors display
|
||||
- Bugfix [ 699010 ] Need Approval option to Discussions like in USS
|
||||
- Bugfix [ 847808 ] Signature not displayed in forum
|
||||
- Fixed a bug where users would only be directed to the page they were on
|
||||
after login, and not to a deeper location with URL parameters.
|
||||
|
||||
|
||||
5.5.2
|
||||
- Fixed a whole slew of bugs in the forums introduced in the last version.
|
||||
- Fixed a bug in the reply.url variable in the USS submission where template didn't get updated to reflect the new forum system.
|
||||
- Fixed a bug in the forum search system where it would search all messages
|
||||
regardless of forum.
|
||||
- Fixed bugs where counters weren't being decremented when a post was
|
||||
deleted.
|
||||
- Fixed bug [ 843591 ] Fatal error while creating a new Message Board if
|
||||
there are no Forums yet.
|
||||
- Fixed bug [ 844196 ] Time formats
|
||||
- Fixed a bug in the forum where new replies defaulted to always subscribing
|
||||
the user to the thread.
|
||||
- Fixed bug [ 844961 ] DataForm: no deleting
|
||||
- Bugfix [ 822324 ]: From field not working in DataForm when mailing to group
|
||||
- Fixed typos in importCollateral.pl
|
||||
- Fixed bug [ 845046 ] Forum notification - no int. message at all
|
||||
|
||||
|
||||
5.5.1
|
||||
- Fixed bug #829806 preventing users from updating thier passwords from the updateAccount form.
|
||||
- Added Apache 2 instructions to install.txt. (Thanks to Andy Grundman.)
|
||||
- Fixed bug [ 831628 ] Subscription notifications sent in wrong language.
|
||||
- Fixed bug [ 828071 ] USS doubles the number of replies
|
||||
- Fixed bug [ 831784 ] Pagination in Messeboard with multiple boards
|
||||
- Fixed bug [ 836133 ] forum title and description are not template variables
|
||||
- Fixed bug [ 840939 ] check on uniqueness of email address while
|
||||
creating/modifying account.
|
||||
- Fixed bug [ 811175 ] check on uniqueness of session Id while generating one
|
||||
- Fixed bug [ 789461 ] added an option to terminate a answer-driven Survey
|
||||
- Fixed bug [ 815856 ] added a patch for htmlArea which solves a problem with relative links
|
||||
- Fixed bug [ 824171 ] page statistics are now tracked only if contenttype is "text/html"
|
||||
- Fixed bug [ 828031 ] proper dsn parsing in upgrade.pl
|
||||
- Fixed bug [ 810035 ] HTTP proxy and forms bug
|
||||
- Fixed bug [ 828057 ] DataForm fixed SQL insert syntax error
|
||||
- Fixed bug [ 828967 ] addHTTP.js didn't work (Thanks to Leendert Bottelberghs).
|
||||
- Fixed bug [ 826251 ] Return a understandable error if webgui.log isn't writable
|
||||
- Fixed bug [ 837143 ] Pagination broken on Survey report
|
||||
- Fixed bug [ 831331 ] translation errors
|
||||
- Fixed bug [ 834792 ] Karma Decay triggers SQL error
|
||||
- Fixed bug [ 832284 ] Pagination broken in Messageboard with Search
|
||||
- Fixed bug [ 838091 ] Read-Only Forum User Cannot Subscribe
|
||||
- Fixed bug [ 839524 ] Editing forum settings defaults all template names
|
||||
- Fixed bug [ 841194 ] denied post security problem
|
||||
- Added a check for malicious mail headers
|
||||
- Fixed bug [ 820144 ] Theme problems under Win32
|
||||
- Fixed bug [ 834633 ] View Threaded subscriptions fails
|
||||
- Fixed bug [ 808704 ] Privilege API missing in Ruling WebGUI 5.4
|
||||
- Updated the Norwegian translation. (Thanks to Nils-Magne Kvammen.)
|
||||
- Updated the German translation. (Thanks to Andreas Graf.)
|
||||
- Fixed a security problem where users could access a forum they didn't have
|
||||
privileges to view if they created a specific URL.
|
||||
- Fixed a security problem where users could edit a forum post they didn't
|
||||
create if they generated a proper URL.
|
||||
|
||||
|
||||
5.5.0
|
||||
- Rewrote the discussion system and added many new features in the process.
|
||||
- Made the username field in the database unique.
|
||||
- Added sorting options to USS.
|
||||
- Added external database group privileges. (Thanks to Andy Grundman.)
|
||||
- Added a switch to the miscellaneous settings that allows the admin to set
|
||||
how URLs are generated to fix a problem with sites behind load balancers.
|
||||
- Added support for encryptLogin user setting. (Thanks to Hal Roberts.)
|
||||
- Added anonymous response option to Survey. (Thanks to Andy Grundman.)
|
||||
- Added the alphabetic? option to the SiteMap wobject. (Thanks to Hal Roberts.)
|
||||
- Changed the page hideFromNavigation option to hide the given page from site maps as well as from navigation menus. (Thanks to Hal Roberts.)
|
||||
- Revamped SyndicatedContent to support aggregate feeds. (Thanks to Hal Roberts.)
|
||||
- Ordered the username list in the manageUsersInGroup operation (Thanks to
|
||||
Andreas Graf.)
|
||||
- Added support for record deletion in DataForm (Thanks to Hal Roberts.)
|
||||
- Templatized the HttpProxy wobject. (Thanks to Len Kranendonk.)
|
||||
- Added a "Search for" and "Stop at" option to HttpProxy. (Thanks to Len Kranendonk.)
|
||||
- Added additional DSN formats for upgrades of remote databases.
|
||||
- Enhanced HTMLArea editor to include table editing. (Thanks to Irving Carrion.)
|
||||
- If the Cache Timeout on a given page is set to 10 seconds or less, that
|
||||
page will not be cached.
|
||||
- Added master events calendar switch.
|
||||
- Updated the Dutch translation. (Thanks to ProcoliX.)
|
||||
- Updated the Spanish translation. (Thanks to Paco Avila.)
|
||||
- Updated the German translation. (Thanks to Andreas Graf.)
|
||||
- Updated the Norwegian translation. (Thanks to Nils-Magne Kvammen.)
|
||||
- Added the missing group scratch filter documentation to the help.
|
||||
- Fixed a bug in the 5.4.3-5.4.4 upgrade script that some users experienced
|
||||
with null values in their DataForm.
|
||||
- Fixed a relative hyperlink bug in htmlArea (Thanks to Andreas Graf.)
|
||||
- Fixed a bug where reinvoking www_createAccountSave could produce duplicate
|
||||
usernames in the database. (Thanks to Martin Kamerbeek.)
|
||||
- Fixed a bug in SQL macro where it required a leading space in queries.
|
||||
- Fixed a case-sensitivity bug in email verfication. (Thanks to Steve Simms.)
|
||||
- Fixed a bug where the user was returned to the wrong page after deleting an
|
||||
item from the clipboard. (Thanks to Steve Simms.)
|
||||
- Fixed a bug in WebGUI account creation where welcome emails were sent
|
||||
regardless of the sendWelcomeMessage setting. (Thanks to Steve Simms.)
|
||||
- Fixed a bug where templates would not render properly in the mini view on
|
||||
the page if they contained macros.
|
||||
- Fixed a display bug in the Data Form. (Thanks to Christian Kocourek.)
|
||||
- Fixed a bug in the date method of the forms package where the noDate option
|
||||
did the opposite of what was expected. (Thanks to Ed Van Duinen.)
|
||||
- Fixed a bug that could hang the macro parser while processing incorrect
|
||||
macro syntax. (Thanks to Len Kranendonk.)
|
||||
|
||||
|
||||
5.4.4
|
||||
- Updated Finnish translation. (Thanks to Markus Hynna.)
|
||||
- Added Croatian translation. (Thanks to Gordon.)
|
||||
- Updated Portuguese translation. (Thanks to Marcelo Ennes.)
|
||||
- Updated Dutch translation. (Thanks to Leo Noordergraaf, ProcoliX, BNC Distribution, and Hugo Van der Kooij.)
|
||||
- Updated German translation. (Thanks to Andreas Graf.)
|
||||
- Fixed a bug in the PreviousDropMenu macro.
|
||||
- Added an association for PPS attachments.
|
||||
- Readded wobject date range check that was accidentally removed.
|
||||
- Fixed a bug that caused incompatibility in the HTML Area image manager with
|
||||
Postgres. (Thanks to Jeremy Malcolm.)
|
||||
- Fixed a leading whitespace bug with the SQL macro.
|
||||
- Usernames can now be 100 characters long.
|
||||
- Page ordering wasn't always maintained when deploying packages, this is now
|
||||
fixed. (Thanks to Y.H.Khoe.)
|
||||
- Errors could have occured if you specified an image name in a collateral
|
||||
macro that did not exist.
|
||||
- Email address didn't validate when it contained a dash (-). (Thanks to
|
||||
Fekke.)
|
||||
- Fixed a bug in the node mechanism where no error would be logged if
|
||||
decompression failed.
|
||||
- Fixed a bug that allowed users to import the same theme multiple times.
|
||||
- Fixed a bug in the page template draw method where javascript caused
|
||||
problems. (Thanks to Leendert Bottelberghs.)
|
||||
- Messages in the message log now have carriage returns converted to HTML
|
||||
breaks when necessary.
|
||||
- Fixed a bug in SMB authentication where the user was let in if there was no
|
||||
SMB Username specified for a user.
|
||||
- Fixed a preceeding space problem in the M macro.
|
||||
- Added a manage templates link to the page properties.
|
||||
- The calendar wizard was too narrow and wrapping on some browsers.
|
||||
- The size attribute was missing from the email method in the Form package.
|
||||
(Thanks to Andreas Graf.)
|
||||
- Data Form: Was displaying mail fields in admin mode even when mailing was
|
||||
disabled.
|
||||
- Data Form: Dates were reset to epoch if a required field caused the form to
|
||||
error.
|
||||
- Data Form: If a site had two data forms with the same field names the list
|
||||
template would be broken.
|
||||
- Data Form: No longer keys on field name, which was dangerous, but instead
|
||||
keys on fieldId.
|
||||
- Data Form: Date and Date Time fields were displaying epoch to the end user
|
||||
rather than human readable dates.
|
||||
- Data Form: A bug in the default acknowlegement caused hidden fields to be
|
||||
displayed.
|
||||
- Data Form: CC and BCC would not be sent if the TO was specified as a
|
||||
username or group name instead of an email address.
|
||||
- Survey: Couldn't go beyond page 1 in gradebook report.
|
||||
- HTTP Proxy: Improper headers were set on errors.
|
||||
|
||||
|
||||
5.4.3
|
||||
- Fixed a bug where CM's could have deleted the entire collateral manager
|
||||
contents if they deleted an item, then hit their back button and deleted it
|
||||
again.
|
||||
- Fixed a bug in the collateralImport.pl script.
|
||||
- Fixed a bug where exports of themes would only work if an image was
|
||||
included in the theme.
|
||||
- Fixed a bug in the RandomSnippet and RandomImage macros where they would
|
||||
crash the page if an invalid collateral folder were specified.
|
||||
- Fixed a bug when wobject privileges were turned on and a user had the
|
||||
privileges to edit a page, they could not add wobjects to the page.
|
||||
- Fixed a bug where all of the articles on a page would get the same template
|
||||
for one page view after a properties save.
|
||||
- Fixed a bug where the email address would not appear when editing a user
|
||||
profile after an admin created a new account. (Thanks to Arne Dokken.)
|
||||
- Fixed a bug in editing secondary admins. (Thanks to Leendert Bottelberghs.)
|
||||
- Fixed an ordering bug on the list of users in the Manage Users In Group
|
||||
page.
|
||||
- Fixed an LDAP auth bug where users could not authenticate if RDN = DN.
|
||||
(Thanks to Chris Jackson.)
|
||||
- Fixed a bug in the DataForm where multiple items in a check list were not
|
||||
being emailed.
|
||||
- Fixed a bug in the Syndicated Content wobject where feeds with only one
|
||||
item would cause a problem. (Thanks to Len Kranendonk.)
|
||||
- Made session page setup use the same mechanism to mangle urls as the rest
|
||||
of WebGUI uses.
|
||||
- Fixed a bug in DataForm where the name of the last form element added would
|
||||
appear as the default value of another form field if it were called "name".
|
||||
- Fixed a potential security problem in the collateral manager where content
|
||||
managers could delete collateral they didn't own.
|
||||
|
||||
|
||||
|
||||
5.4.2
|
||||
- Fixed tab forms for better support with older browsers, less resource usage, and a cookie bug that would log users out after editing their stie for a while.
|
||||
- Updated German translation. (Thanks to Andreas Graf.)
|
||||
- Fixed a minor security problem where some error messages would list the admins on the system. This would theoretically make it easier for people to guess their passwords since they knew the usernames.
|
||||
- Fixed a bug where the "Validate This Page" option was broken.
|
||||
- Fixed a bug that would cause a fatal error if a user's session was killed while they were trying to access a page that required special privileges.
|
||||
- Fixed a bug that allowed data form field names to contain "-" and "/".
|
||||
- Fixed several bugs related to editing while per-wobject privileges is enabled.
|
||||
|
||||
|
||||
|
||||
5.4.1
|
||||
- Disabled write actions in the SQL macro for better security.
|
||||
- Fixed a security flaw that could allow registered users to get admin privileges in WebGUI. (Thanks to Len Kranendonk.)
|
||||
- Removed the programmer macros from the default config file as a security measure. They can still be readded when needed.
|
||||
- Updated the Norwegian translation. (Thanks to Nils-Magne Kvammen.)
|
||||
- Fixed a bug caused by running WebGUI on a non-standard port.
|
||||
- Fixed an ordering bug in page statistics report.
|
||||
- Fixed a vulnerability where unauthorized users could edit a Data Form entry.
|
||||
- Updated the Italian translation. (Thanks to Paolo Pigati.)
|
||||
- Fixed a package deployment sequencing problem.
|
||||
- Updated the German translation (Thanks to Andreas Graf.)
|
||||
- Fixed a bug in Form.pm where interval fields that were set to "0" displayed as "1". (Thanks to Andy Grundman.)
|
||||
- Fixed a bug in the databaseLink selectList in SQLReport where it would not properly default to the null entry. (Thanks to Andy Grundman.)
|
||||
- Fixed a recursive page privs problem.
|
||||
- Fixed a problem moving pages up and down under mod_perl2. (Thanks to Arne Dokken.)
|
||||
- Changed the HTTP Proxy to handle malformed URLs better. (Thanks to Len Kranendonk.)
|
||||
- Fixed an Article template problem that caused attachments not to show up.
|
||||
- Added a CSS class to the last element in the Crumbtrail Macro. (Thanks to Jonas Diemer.)
|
||||
- Changed a few things to get closer to XHTML 1.0 compliance. (Thanks to Balint Sandor.)
|
||||
|
||||
|
||||
|
||||
5.4.0
|
||||
- Added RSS syndication to the USS. (Thanks to Hal Roberts.)
|
||||
- Added per wobject Privileges.
|
||||
- Added per page caching.
|
||||
- Added database connection properties manager. (Thanks to Andy Grundman.)
|
||||
- Added "Rewrite URLs?" option to HTTP Proxy. (Thanks to Len Kranendonk.)
|
||||
- HTTP Proxy now proxies all content types. So images, etc, go through WebGUI. (Thanks to Len Kranendonk.)
|
||||
- Added caching of content. (Thanks to Len Kranendonk.)
|
||||
- Updated the German translation. (Thanks to Andreas Graf.)
|
||||
- Fixed a bug that could cause SQL Report to crash. (Thanks to Andy Grundman.)
|
||||
- Fixed that caused two sub-menus to appear when you copied a style. (Thanks to Andy Grundman.)
|
||||
- Fixed an encoding problem with the Japanese translation.
|
||||
- Fixed a bug where users could create files in the File Manager that they could not edit.
|
||||
- Added some extra attributes to the user manager for easier management. (Thanks to Richard Calieus.)
|
||||
|
||||
|
||||
5.3.3
|
||||
- Fixed a spelling error in the userImport script.
|
||||
- Fixed a bug where all discussions would crash if the message board was disabled in the config file.
|
||||
- Fixed a bug where data form required fields were not actually being checked as required.
|
||||
- Macros are now pre-processed on default data in the Data Form.
|
||||
- Rich edit is now always a popup option when editing snippets to avoid problems with CSS, and Javascript snippets.
|
||||
- Fixed an IP Filter problem in the groups privileges.
|
||||
- Fixed a privilege caching problem. (Thanks to Len Kranendonk.)
|
||||
- Fixed a db connection pooling problem. (Thanks to Andy Grundman.)
|
||||
- Fixed an LDAP Profile Sync problem. (Thanks to Andy Grundman.)
|
||||
- Fixed an unclosed file handle problem. (Thanks to Andy Grundman.)
|
||||
- Fixed an erroneous prompt before deleting a collateral folder (Thanks to Andy Grundman.)
|
||||
- Fixed a problem where pages would never remain hidden. (Thanks to Andy Grundman.)
|
||||
- Fixed a problem where items deleted from collateral manager were not always deleted from the filesystem. (Thanks to Andy Grundman.)
|
||||
- Added the Japanese translation. (Thanks to Nusphere.)
|
||||
- Updated the Italian translation. (Thanks to Paolo Pigati.)
|
||||
- Updated the German Translation (Thanks to Andreas Graf.)
|
||||
|
||||
|
||||
|
||||
|
||||
5.3.2
|
||||
- Fixed a bug where the "export theme" option wasn't showing up.
|
||||
- Fixed a bug in the group expiration notification system where it wasn't sending the notifications.
|
||||
- Fixed a bug where the registration page didn't work if a custom profile field was of type select and was required.
|
||||
- Changed the theme file extention to "theme.tar.gz" because just plain "theme" was conflicting with Windows theme manager.
|
||||
- Fixed a bug where welcome emails were not being sent to users.
|
||||
- Fixed a bug during the upgrade process where certain types of data forms would fail to migrate.
|
||||
- Fixed a bug during the upgrade process where wobject proxies that were pointing to invalid wobjects would fail to migrate.
|
||||
- Updated Italian toolbar images. (Thanks to Pablo Pigati.)
|
||||
- Updated German translation. (Thanks to Andreas Graf.)
|
||||
- Fixed a bug where you could not "cut" any of the pages that ship with WebGUI.
|
||||
- Fixed a bug where you could not paste pages directly from the clipboard drop down, only through the manage clipboard interface.
|
||||
- Fixed a bug in the Extra Column wobject where the start/end dates were not being set properly.
|
||||
- Fixed a syntax error in the scaled image macro.
|
||||
- In the new persistence layer using getTree() with a defined depth was not working.
|
||||
- Fixed a bug in the gotchas that read 'Compress:Zlib' when it should have read 'Compress::Zlib'.
|
||||
- Fixed a bug in the spell checker in HTML Area where the spell checker stayed in memory even after the editor was closed.
|
||||
|
||||
5.3.1
|
||||
- 5.3.0 was released with the 5.2.4 create script due to a bug in our build process. This has been corrected. Upgraders will not have a problem, but those creating a new site from the 5.3.0 create script will need up use 5.3.1 instead.
|
||||
- Fixed some POD formatting errors.
|
||||
- Fixed a syntax error in the Data Form acknowledgement.
|
||||
|
||||
|
||||
|
||||
5.3.0
|
||||
- Converted the Mail Form wobject into the Data Form wobject.
|
||||
|
||||
- Added more range options to Events Calendar.
|
||||
- Added a theme manager.
|
||||
- Enhanced Wobject Proxy wobject by creating a new shortcut interface and allowing overrides of title, description, and template.
|
||||
- Added secondary security.
|
||||
- Moved HTTP Proxy cookie jar to WebGUI's tempspace.
|
||||
- Added dateTime and time field formats and all accompanying methods.
|
||||
- Added a relative distinquished name setting to LDAP authentication.
|
||||
- Added content type meta tag to page generation to help with text encoding on non-english languages.
|
||||
- Added time setting to wobjects and pages start and end dates.
|
||||
- Events calendar entries can now be sorted by selecting a time.
|
||||
- Added an option to use the real IP address as the client IP when running through a proxy. (Thanks to Ed Van Duinen.)
|
||||
- Added massive improvements to HTML Area rich editor: link target selection, smileys, find / replace, undo / redo, MS-Word cleanup, special characters, integration with the collateral manager for images, and spell check (requires MS Word). (Thanks to Len Kranendonk and the HTML Area open source community.)
|
||||
- Added more field types to the user profile system.
|
||||
- The upgrade system automatically deals with dislocated databases now.
|
||||
- Added user separated clipboards and trash. (Thanks to Ed Van Duinen.)
|
||||
- Added advanced trash and clipboard management functions (Thanks to Ed Van Duinen.)
|
||||
- Added trash and clipboard expiration (auto delete) functions. (Thanks to Ed Van Duinen.)
|
||||
- Added a new persistence layer capable of easily dealing with complex data structures like trees and persisting them to a relational database table. (Thanks to Ben Simpson.)
|
||||
- Added the ability to set set scratch variables from the web interface.
|
||||
- Added template to wobject API.
|
||||
- Can now move pages left and right in heirarchy in the page tree manager. (Thanks to Ben Simpson.)
|
||||
- Deleting a collateral folder will now recursively delete the contents of the collateral folder rather than moving the contents to the parent folder. (Thanks to Ben Simpson.)
|
||||
- Added a link to download a new version of WebGUI to the statistics page, when one exists.
|
||||
- Added a mechanism to allow administrators to set up groups that users can auto-(un)subscribe to/from. Useful for newsletter management and other opt-in programs.
|
||||
- Remved the hardcoded paragraph tag (p) that went between articles.
|
||||
- Added methods to the DateTime package for dealing with time in forms.
|
||||
- Added a div class called "wobject" around all wobjects. (Thanks to Hal Roberts.)
|
||||
- Enhanced debug for easier development.
|
||||
- Added the RootTab, RandomSnippet, RandomImage, CanEditText, If, Spacer, EditableToggle, SpecificDropMenu, TopDropMenu, GroupAdd, GroupDelete, LastModified, PreviousDropMenu, and SI (scaled image) macros.
|
||||
- Added the ability to move pages up and down in the page tree (thanks to Ben Simpson).
|
||||
- Added a translation managers group so that administrators can sub-divide the internationalization task without giving away admin privileges.
|
||||
- Added macros to get random data back from the collateral manager.
|
||||
- Changed the GroupText macro to have an "else" display.
|
||||
- Added a parameter to the ThumbnailLinker macro to open the image in a new window.
|
||||
- Added an option to open menu links in a new window.
|
||||
- Templatized the Poll wobject.
|
||||
- Added a search parameter of email address to the user manager.
|
||||
- Page redirect URLs no longer redirect when admin mode is turned on in order to make the page properties easier to edit.
|
||||
- Added a date stamp to outgoing mail to maintain compliance with the RFC2822 specification.
|
||||
- Added configurable favicon and site icon support.
|
||||
- Added new administrative settings to the profile manager for more extensible user profiling.
|
||||
- Changed link list so users couldn't see edit icons unless they had the privileges to edit the link.
|
||||
- Removed the long since depricated "become" method from the icons package.
|
||||
- Updated icons to use the "title" attribute for tooltips.
|
||||
- Added a more comprehensive search and filtering system in the translations manager.
|
||||
- Added a pagination feature to the Article wobject to allow for multi-paged articles.
|
||||
- Enhanced the Attachments and Nodes sub-systems.
|
||||
- Added a "context" attribute to the translations manager to help make translations easier.
|
||||
- Added scratch filter to groups.
|
||||
- Added a temp directory subsystem.
|
||||
- Fixed a bug that caused the syndicated content wobject to fail, and also removed the HTML::Parser 3.27 requirement.
|
||||
- Fixed a pagination bug in the groups manager.
|
||||
- Fixed a bug in the File Manager wobject that didn't delete the collateral data from the database when the wobject was purged from the system.
|
||||
- Fixed a minor security problem where a user could log in with an invalid password if an administrator did not specify a connect DN for them, but did set their account to authenticate via LDAP.
|
||||
- Fixed a potential problem where adding a slash at the end of a url would cause the user to only see the not found page.
|
||||
- Fixed a bug where visitors could not turn the search on/off in USS.
|
||||
- Fixed a problem where users were unable to "recover" their password if the administrator didn't set them a default password.
|
||||
- The "next event" link in the events calendar would choose events that did not belong to the current calendar, this has been fixed.
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
5.2.6
|
||||
- Fixed a major security problem where users could edit settings they had no privileges to edit.
|
||||
- Fixed a compatibility problem with Mac OS X and Windows.
|
||||
|
||||
|
||||
|
||||
5.2.5.
|
||||
- Added the Finnish translation (thanks to Markus Hynna).
|
||||
- Updated the Swedish translation (thanks to Michael Westlund).
|
||||
- Fixed a bug where users could not delete their own submissions.
|
||||
- Fixed a bug where dates in user profile were shown as epoch.
|
||||
- Added the "m3u" extension type to the attachment system.
|
||||
- Fixed a bug where the SQL macro would cause a fatal error if an invalid query was used.
|
||||
- Changed the Syndicated Content wobject to accept both the new and old specifications of RSS/RDF.
|
||||
- Removed the hard coded "cn=" in the LDAP auth method.
|
||||
- Fixed a bug where the "Hide From Navigation" setting would default back to no even when it was set to yes.
|
||||
- Fixed a syntax error that caused a problem on Red Hat 9 installs.
|
||||
- Fixed a bug where the karma threshold did not display properly in the "edit group" form.
|
||||
- Fixed a parsing bug in Syndicated Content wobject. Requires the upgrade of HTML::Parser to version 3.27+.
|
||||
- Fixed a bug where users in the content managers group were not showing up as possible page owners.
|
||||
|
||||
|
||||
|
||||
5.2.4
|
||||
- Updated the Italian translation (thanks to Emiliano Grilli).
|
||||
- Eliminated a possible denial of service situation with the HTTP Proxy (thanks to Len Kranendonk).
|
||||
- Fixed some typos in the upgrade utility (thanks to Ben Simpson).
|
||||
- Fixed a problem where the karma properties on discussions did not show up properly.
|
||||
- Fixed a problem where FAQ templates could not be switched (thanks to Len Kranendonk).
|
||||
- Fixed a problem in the backwards compatibility code for the pre-5.2 Wobject API (thanks to Frank Dillon).
|
||||
- Updated Syndicated Content to use new improved RSS feed reader (thanks to Andy Grundman and Len Kranendonk).
|
||||
- Fixed a bug where date fields were not being properly validated in the user profile system.
|
||||
- Fixed a bug where a page URL could start with a / (slash), causing problems when using mod_rewrite.
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
5.2.3
|
||||
- Updated the German translation (thanks to Andreas Graf)
|
||||
- Fixed a macro processing bug for HTML entities.
|
||||
- Fixed a bug in the user alias where alias could be left blank.
|
||||
- Fixed a bug where referencing non-existant collateral would cause a fatal error.
|
||||
- Fixed a problem in the MailForm validation for MailForm instances that existed prior to validation.
|
||||
- Fixed a bug in HTTP Proxy that caused a fatal error due to a bad cookie jar name.
|
||||
- Fixed a bug where WebGUI would crash if the site config had only one authentication method specified.
|
||||
- Fixed a bug in item pop-up template.
|
||||
- Fixed a bug where editing collateral data wouldn't update the wobject's last edited property.
|
||||
- Fixed a bug where admin could create a username that a user couldn't validate.
|
||||
|
||||
|
||||
|
||||
|
||||
5.2.2
|
||||
- Fixed some bugs with the radioList method in the form package.
|
||||
- Fixed a bug in the form package that would not allow integers to be negative.
|
||||
- Fixed a bug where alias was not saved properly.
|
||||
- Fixed a bug where you could not reorder wobjects.
|
||||
- Updated the German, Norsk, and Russian translations.
|
||||
- Fixed a bug in the collateral manager where deleting an attached file would delete the entire collateral entry.
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
5.2.1
|
||||
- Added Italian icons.
|
||||
- Updated the Swedish, German, and Danish translations.
|
||||
- Javascript and iframe URLs are now rewritten in the HTTP proxy.
|
||||
- Fixed a problem in the user importer where the default identifier was always used even if a new one was specified in the import script.
|
||||
- Fixed a bug where page editing would crash if the Everyone, Visitors, or Registered Users groups were added to the Content Managers group.
|
||||
- Fixed a bug in the help system where macros were being processed, when they should have been displayed.
|
||||
- Fixed a typo that cause LDAP Auth to fail.
|
||||
- Fixed a bug in the translations manager where macros were being processed rather than being displayed.
|
||||
- Fixed a bug where automatic validation of wobject properties was not working properly, and causing fields like "Display title?" to save as their default value rather than their set value.
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
5.2.0
|
||||
- Added the HTTP Proxy wobject (very special thanks to Len Kranendonk).
|
||||
- Rewrote all of the command line utilities for greater flexibility, ease of use, and for better design.
|
||||
- Exposed a Collateral API and converted existing systems to use it.
|
||||
- Added a template variable to Site Map to make multi-column site maps.
|
||||
- Templatized the Syndicated Content wobject.
|
||||
- Exposed a Cache API.
|
||||
- Moved page caching settings from the config file to the UI and split the setting between visitors and everyone else.
|
||||
- Added verbosity to runHourly.pl for diagnostic purposes.
|
||||
- WebGUI now allows forward slashes so that users content managers can simulate directory hierarchy.
|
||||
- The system now displays the file icon for an image when thumbnails are not available due to image magick not being installed.
|
||||
- File size abbreviations have been changed to be more accurate.
|
||||
- Added radio/checkbox support to Mail Form.
|
||||
- Added input validation to Mail Form.
|
||||
- Increased ip group support to allow for more IP information.
|
||||
- Added a new TabForm subsystem and API.
|
||||
- Migrated some of the more complex UI components to Tab Forms.
|
||||
- Switched to a new config file parser.
|
||||
- Macros, Authentication Modules, and Wobjects are now configured from the config file rather than the filesystem for greater control and speed.
|
||||
- Added support for nested (embedded) macros (thanks to Len Kranendonk).
|
||||
- Added filtering options to each discussion and the USS.
|
||||
- Modified the wobject API for better extensibility and to make programming wobjects a little easier. (Wobject API is still reverse compatible.)
|
||||
- Macros are now processed only once per page rather than once for each wobject, plus templates, and styles. This has increased macro processing speed dramatically.
|
||||
- Added Norsk translation (thanks to Nils-Magne Kvammen).
|
||||
- Updated the Danish translation.
|
||||
- Updated the Italian translation (thanks to Emiliano Grilli and Paolo Pigati).
|
||||
- Added a floating point data type to the forms system.
|
||||
- Changed the default maximum attachment size to 10mb for new installs.
|
||||
- Fixed a bug where runHourly left it's session open each time it ran, thusly cluttering the user sessions.
|
||||
- Fixed a postgres problem with moveCollateralDown and moveCollateralUp in the wobject superclass.
|
||||
- Fixed a bug where Packages were defaultly hidden from the navigation.
|
||||
- Fixed a render bug for Netscape 6 in the forms package.
|
||||
- Fixed a bug that allowed a user to post a document seemingly anonymously using a blank alias.
|
||||
|
||||
- Fixed a superficial bug in the upgrade system.
|
||||
- Fixed a bug where the make page printable functionality didn't work if the user was a visitor and page caching was enabled.
|
||||
- Fixed a bug in the discussion system where some messages were not internationalized.
|
||||
|
||||
|
||||
|
||||
5.1.2
|
||||
- Updated the German translation.
|
||||
- Fixed a bug where survey questions and answers could not be edited when using Postgres.
|
||||
- Made a cosmetic change to the Midas editor.
|
||||
|
||||
|
||||
|
||||
|
||||
5.1.1
|
||||
- Fixed a bug in the round utility function that was causing a problem in the poll graph.
|
||||
- WebGUI's mail system no longer automatically processes macros on the mail body due to possible security problems.
|
||||
- Fixed a couple of translations problems.
|
||||
- Fixed a bug where search engine results did not maintain proper number of results per page.
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
5.1.0
|
||||
- Added width field to Mail Form.
|
||||
- Fixed a bug where you couldn't copy a style when running with Postgres.
|
||||
- WebGUI now adds a warning to the log when a file upload is too big, and gracefully recovers from the problem.
|
||||
|
||||
- Added a rich editor for Mozilla 1.3b and above.
|
||||
- Rewrote the user import system for greater flexibiltiy and robustness.
|
||||
- Fixed a bug where it was possible for an admin to disable him/herself.
|
||||
- Fixed a bug where yes/no items in the user profile always defaulted to their defaults rather than the user preference.
|
||||
- Added support for user alias in the USS.
|
||||
- Added a "hide from navigation" option to pages.
|
||||
- Removed a bunch of depricated messages from the various tranlsations.
|
||||
- Updated the Russian translation.
|
||||
- Added user preferences for rich editor.
|
||||
- Fixed a bug in the error handler where it would lose session data in offline sessions.
|
||||
- Updated the error handler to provide better debugging information in the log.
|
||||
- Fixed a b bug in SiteMap where menuTitle would not display.
|
||||
- Fixed a bug where deleting the second alternate version of a file in the file manager would result in deleteing the first alternate version.
|
||||
- Added discussion thread subscription support.
|
||||
- Removed privilege overrides in favor of groups of groups.
|
||||
|
||||
- Changed the page privileges system to be more intuitive and more powerful (thanks to Ed Van Duinen for all his input).
|
||||
- Added a welcome message setting for new registrations.
|
||||
- Added notification and deletion options to grouping expirations.
|
||||
- Updated German translation.
|
||||
- Added IP-based groups.
|
||||
- Added signature and alias to user profile.
|
||||
- Added preferences to toggle the display of email address and profile.
|
||||
|
||||
- Exposed an API for the groups system.
|
||||
- Exposed an API for the groups of groups of users system.
|
||||
- Optimized preloader for recent changes.
|
||||
- Macros are now processed on all messages that pass through WebGUI's email system.
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
5.0.3
|
||||
- Fixed a bug where interval settings (like sessionTimeout) would not save.
|
||||
- In the USS you can now change the status of a submission even if the submission has already been approved. In this way you'll be able to "complete" the approval process even if it has already been completed.
|
||||
- In the USS if you have the privileges to approve/deny a submission, the submission will automatically be approved. Also, if the message is automatically approved then no notification will be generated for approval.
|
||||
- Updated the Dutch translation.
|
||||
- Fixed a Postgres bug with editing user profiles.
|
||||
- Some code efficiency improvements.
|
||||
- Fixed a bug where calling for a radio button would produce a checkbox.
|
||||
- Fixed some timing problems with some of the scheduler plugins.
|
||||
- Fixed a bug that moved expired content to the trash unexpectedly.
|
||||
- Added Spanish toolbar icon set.
|
||||
- Changed translation export to include toolbar.
|
||||
- Updated the German translation.
|
||||
- Fixed a bug in the USS submission template.
|
||||
- Updated the macro help to include the Snippet macro.
|
||||
- Added the Snippet macro to the macro toolbar in the Rich Editor.
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
5.0.2
|
||||
- Fixed a bug in the calendar where only months with 31 days would be displayed if the current day is the 31st of a 31 day month.
|
||||
- Fixed a bug where the calendar wobject would not display the last month in the calendar.
|
||||
- Fixed a potential bug in mail server connectivity.
|
||||
- Fixed a couple of typos.
|
||||
- Upgraded HTML Area rich editor to version 2.0.3.
|
||||
- Updated copyrights for 2003.
|
||||
- Removed some old unncessary code.
|
||||
- Added Microsoft Project file type support.
|
||||
- Fixed a problem where the group for a page would always be "Admins" if a UI Level was set to less than 9.
|
||||
- Updated the German translation.
|
||||
- Updated the Russian translation.
|
||||
- Internationalized the "Send" button on the Mail Form wobject (it was previously hardcoded in English).
|
||||
- Made some database changes for future Sybase compatibility.
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
5.0.1
|
||||
- Fixed a bug where an upgrade from 4.6.9 to 4.7.0 would fail if a site had used ids greater than 1000.
|
||||
- Updated the German translation.
|
||||
- Fixed a sorting bug in the File Manager.
|
||||
- Fixed a search bug in the ^?; macro.
|
||||
- Improved the efficiency of the isIn method in the Utility package (thanks to John Krahn)
|
||||
- Fixed some bugs in the hash sorters (thanks to John Krahn)
|
||||
- Fixed a syntax error in the user importer.
|
||||
|
||||
|
||||
|
||||
5.0.0
|
||||
- Fixed another IE Cookie login bug.
|
||||
- Updated Dutch translation thanks to (Koen).
|
||||
- Fixed a bug in the translation manager search subsystem.
|
||||
- Updated the German translation.
|
||||
|
||||
2280
docs/changelog/6.x.x.txt
Normal file
2280
docs/changelog/6.x.x.txt
Normal file
File diff suppressed because it is too large
Load diff
4338
docs/changelog/7.x.x.txt
Normal file
4338
docs/changelog/7.x.x.txt
Normal file
File diff suppressed because it is too large
Load diff
6
docs/changelog/_majorVersionChangelog.skeleton
Normal file
6
docs/changelog/_majorVersionChangelog.skeleton
Normal file
|
|
@ -0,0 +1,6 @@
|
|||
MajorVersionNumber.MinorReleaseNumber.PointReleaseNumber
|
||||
- New Features added here, for example...
|
||||
- Converted all the max((assetData.)revisionDate) calls to use mysql5/(4.1)
|
||||
nested queries.
|
||||
- Bugfixes listed here, for example...
|
||||
- fix [ 1323184 ] CS Submissions Not Sorting on multiple sites
|
||||
2543
docs/create.sql
Normal file
2543
docs/create.sql
Normal file
File diff suppressed because one or more lines are too long
102
docs/credits.txt
Normal file
102
docs/credits.txt
Normal file
|
|
@ -0,0 +1,102 @@
|
|||
####################################################################
|
||||
# WebGUI Credits #
|
||||
####################################################################
|
||||
|
||||
The following people/companies are responsible for WebGUI:
|
||||
|
||||
|
||||
WebGUI Core..........................JT Smith / Plain Black
|
||||
|
||||
Contributing Developers..............C.J. Adams-Collier / <cjac@colliertech.org>
|
||||
Meg O'Keefe Andrea / Plain Black
|
||||
Lucas Bartholemy
|
||||
Peter Beardsley / Appropriate Solutions
|
||||
Doug Bell / Plain Black
|
||||
Leendert Bottelberghs / United Knowledge
|
||||
Richard Caelius / 100 World
|
||||
Irving Carrion
|
||||
N. Hao Ching / Plain Black
|
||||
Richard Clark
|
||||
Doug Collinge
|
||||
Misja Op de Coul / E-Wise
|
||||
Flavio Curti
|
||||
John Dagitz / Plain Black
|
||||
Joeri de Bruin / Oqapi
|
||||
David Delikat
|
||||
Michele Dell'Aquila / CSU
|
||||
Jeff Depons / Adaptive Dynamics
|
||||
Frank Dillon / Plain Black
|
||||
Arne Dokken
|
||||
Patrick Donelan / SDH Consulting
|
||||
Paul Driver / Plain Black
|
||||
Junying Du / Brunswick
|
||||
Ed Van Duinen / UNC
|
||||
Greg Fast / Brunswick
|
||||
Chris Gebhardt / OpenServe
|
||||
Andy Grundman
|
||||
Chris Hanson / Plain Black
|
||||
Tessa Harmon / Knowmad Technologies
|
||||
Chris Jackson
|
||||
Roy Johnson / Plain Black
|
||||
Bart Jol / ProcoliX
|
||||
Koen de Jonge / ProcoliX
|
||||
Martin Kamerbeek / Oqapi
|
||||
Yung Han Khoe
|
||||
Diona Kidd / Knowmad Technologies
|
||||
Graham Knop / Plain Black
|
||||
Christian Kocourek
|
||||
John W. Krahn
|
||||
Len Kranendonk
|
||||
Colin Kuskie / perlDreamer Consulting LLC
|
||||
Christophe Marcant
|
||||
Kristi McCombs / Plain Black
|
||||
Vince Liao (Global NOC at IU)
|
||||
Tony Mountifield
|
||||
Kaleb Murphy / Plain Black
|
||||
Chris Nehren / Plain Black
|
||||
Ernesto Hernández-Novich / itverx C.A.
|
||||
Stephen Opal / Plain Black
|
||||
Tavis Parker / Plain Black
|
||||
Amir Plivatsky
|
||||
Daniel Quinlan
|
||||
Jukka Raimovaara / Mentalhouse Oy
|
||||
Alan Ritari / DonorWare
|
||||
Hal Roberts / Harvard
|
||||
Luke Robinson / Orchard Solutions
|
||||
Laura Rummage / Plain Black
|
||||
Tera Runde / Plain Black
|
||||
Steve Simms
|
||||
Ben Simpson
|
||||
Andrew Smith / SDH Consulting
|
||||
Alan Smithee
|
||||
Steve Swanson / Plain Black
|
||||
Jeff Szpak / Plain Black
|
||||
Henry Tang / Long Term Results B.V.
|
||||
Dale Trexel / U of MN Law School
|
||||
Sean Tu / WDI
|
||||
Vladimir Vitkovsky / WebGUI Worldwide
|
||||
Rogier Voogt / United Knowledge
|
||||
Jamie Vrbsky / Plain Black
|
||||
Arjan Widlak / United Knowledge
|
||||
Madsen Wikholm
|
||||
Matt Wilson / Plain Black
|
||||
Paul Wrightson / Invicta Services
|
||||
Zhou Xiaopeng / WebGUI Worldwide
|
||||
Gerald Young
|
||||
Bernd Kalbfuß-Zimmermann
|
||||
Tabitha Zipperer / Plain Black
|
||||
Rory Zweistra / Oqapi
|
||||
|
||||
The following are people/companies who didn't directly contribute
|
||||
to WebGUI, but whose work has made WebGUI possible:
|
||||
|
||||
|
||||
Perl.................................Larry Wall / O'Reilly
|
||||
The Entire CPAN Community (search.cpan.org)
|
||||
|
||||
TinyMCE..............................MoxieCode
|
||||
http://www.moxiecode.com
|
||||
|
||||
Yahoo User Interface (YUI)...........Yahoo!
|
||||
http://www.yahoo.com
|
||||
|
||||
1804
docs/gotcha.txt
Normal file
1804
docs/gotcha.txt
Normal file
File diff suppressed because it is too large
Load diff
70
docs/install.txt
Normal file
70
docs/install.txt
Normal file
|
|
@ -0,0 +1,70 @@
|
|||
##################################################################
|
||||
# Quick And Dirty Install Instructions #
|
||||
##################################################################
|
||||
|
||||
The following is a rough overview of how to install WebGUI. For
|
||||
more detailed instructions read the WebGUI installation
|
||||
documentation.
|
||||
|
||||
http://wiki.webgui.org/installation-options
|
||||
|
||||
QnD INSTALL INSTRUCTIONS:
|
||||
|
||||
1. Install Perl 5.8 or higher.
|
||||
|
||||
2. Install Apache 2.0 with mod_perl 2.0 and set up your config. Add the
|
||||
following directives to mod_perl (See WebGUI Done Right for more detail.)
|
||||
|
||||
LoadModule apreq_module modules/mod_apreq2.so
|
||||
LoadModule perl_module modules/mod_perl.so
|
||||
PerlSetVar WebguiRoot /data/WebGUI
|
||||
PerlCleanupHandler Apache2::SizeLimit
|
||||
PerlRequire /data/WebGUI/sbin/preload.perl
|
||||
|
||||
<VirtualHost *:80>
|
||||
ServerName www.example.com
|
||||
ServerAlias example.com
|
||||
DocumentRoot /data/domains/example.com/www/public
|
||||
SetHandler perl-script
|
||||
PerlInitHandler WebGUI
|
||||
PerlSetVar WebguiConfig www.example.com.conf
|
||||
</VirtualHost>
|
||||
|
||||
3. Install MySQL 5.0.10 or higher.
|
||||
|
||||
4. Install Image Magick 6.0 or higher.
|
||||
|
||||
5. Extract WebGUI into your webroot.
|
||||
|
||||
6. Start MySQL.
|
||||
|
||||
7. Run the following Database commands. (You should modify the
|
||||
commands to match your database, username, and password.)
|
||||
|
||||
mysql -e "create database WebGUI"
|
||||
mysql -e "grant all privileges on WebGUI.* to webgui@localhost identified by 'password'"
|
||||
mysql -e "flush privileges"
|
||||
mysql -uwebgui -ppassword WebGUI < docs/create.sql
|
||||
|
||||
8. Edit "etc/WebGUI.conf" to match your DB settings and log directory.
|
||||
|
||||
9. Edit "etc/spectre.conf" to define port and worker settings for spectre
|
||||
|
||||
10. Run the following command from your WebGUI/sbin directory to install
|
||||
the required perl modules and determine whether you've configured
|
||||
your system correctly.
|
||||
|
||||
perl testEnvironment.pl
|
||||
|
||||
If it returns all "OK" then you're done.
|
||||
|
||||
11. Start Apache.
|
||||
|
||||
12. Start Spectre.
|
||||
|
||||
cd /data/WebGUI/sbin
|
||||
perl spectre.pl --daemon
|
||||
|
||||
13. Browse to your site. You'll be guided through a few quick questions
|
||||
to setup an admin account.
|
||||
|
||||
40
docs/legal.txt
Normal file
40
docs/legal.txt
Normal file
|
|
@ -0,0 +1,40 @@
|
|||
####################################################################
|
||||
# WebGUI Legal Information #
|
||||
####################################################################
|
||||
|
||||
WebGUI is Copyright 2001-2011 Plain Black Corporation. All rights
|
||||
reserved.
|
||||
|
||||
WebGUI Content Engine, WebGUI Runtime Environment, and Plain Black
|
||||
are registered trademarks of Plain Black Corporation.
|
||||
|
||||
WebGUI is free software; you can redistribute it and/or modify it
|
||||
under the terms of the GNU General Public License (version 2) as
|
||||
published by the Free Software Foundation and as distributed
|
||||
with this package in "docs/license.txt".
|
||||
|
||||
WebGUI is distributed in the hope that it will be useful, but
|
||||
WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
General Public License for more details. However, support may be
|
||||
purchased from Plain Black at http://www.plainblack.com/
|
||||
|
||||
For more information about Plain Black or WebGUI, please visit
|
||||
http://www.plainblack.com or email info@plainblack.com.
|
||||
|
||||
It is illegal to remove or tamper with the notices at the top of
|
||||
each file, or this file, or the license file. The notice at the top
|
||||
of each file looks like the following:
|
||||
|
||||
#-------------------------------------------------------------------
|
||||
# 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
|
||||
#-------------------------------------------------------------------
|
||||
|
||||
|
||||
|
||||
346
docs/license.txt
Normal file
346
docs/license.txt
Normal file
|
|
@ -0,0 +1,346 @@
|
|||
####################################################################
|
||||
# WebGUI License #
|
||||
####################################################################
|
||||
|
||||
GNU GENERAL PUBLIC LICENSE
|
||||
Version 2, June 1991
|
||||
|
||||
Copyright (C) 1989, 1991 Free Software Foundation, Inc.
|
||||
59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||
Everyone is permitted to copy and distribute verbatim copies
|
||||
of this license document, but changing it is not allowed.
|
||||
|
||||
Preamble
|
||||
|
||||
The licenses for most software are designed to take away your
|
||||
freedom to share and change it. By contrast, the GNU General Public
|
||||
License is intended to guarantee your freedom to share and change free
|
||||
software--to make sure the software is free for all its users. This
|
||||
General Public License applies to most of the Free Software
|
||||
Foundation's software and to any other program whose authors commit to
|
||||
using it. (Some other Free Software Foundation software is covered by
|
||||
the GNU Library General Public License instead.) You can apply it to
|
||||
your programs, too.
|
||||
|
||||
When we speak of free software, we are referring to freedom, not
|
||||
price. Our General Public Licenses are designed to make sure that you
|
||||
have the freedom to distribute copies of free software (and charge for
|
||||
this service if you wish), that you receive source code or can get it
|
||||
if you want it, that you can change the software or use pieces of it
|
||||
in new free programs; and that you know you can do these things.
|
||||
|
||||
To protect your rights, we need to make restrictions that forbid
|
||||
anyone to deny you these rights or to ask you to surrender the rights.
|
||||
These restrictions translate to certain responsibilities for you if you
|
||||
distribute copies of the software, or if you modify it.
|
||||
|
||||
For example, if you distribute copies of such a program, whether
|
||||
gratis or for a fee, you must give the recipients all the rights that
|
||||
you have. You must make sure that they, too, receive or can get the
|
||||
source code. And you must show them these terms so they know their
|
||||
rights.
|
||||
|
||||
We protect your rights with two steps: (1) copyright the software, and
|
||||
(2) offer you this license which gives you legal permission to copy,
|
||||
distribute and/or modify the software.
|
||||
|
||||
Also, for each author's protection and ours, we want to make certain
|
||||
that everyone understands that there is no warranty for this free
|
||||
software. If the software is modified by someone else and passed on, we
|
||||
want its recipients to know that what they have is not the original, so
|
||||
that any problems introduced by others will not reflect on the original
|
||||
authors' reputations.
|
||||
|
||||
Finally, any free program is threatened constantly by software
|
||||
patents. We wish to avoid the danger that redistributors of a free
|
||||
program will individually obtain patent licenses, in effect making the
|
||||
program proprietary. To prevent this, we have made it clear that any
|
||||
patent must be licensed for everyone's free use or not licensed at all.
|
||||
|
||||
The precise terms and conditions for copying, distribution and
|
||||
modification follow.
|
||||
|
||||
GNU GENERAL PUBLIC LICENSE
|
||||
TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
|
||||
|
||||
0. This License applies to any program or other work which contains
|
||||
a notice placed by the copyright holder saying it may be distributed
|
||||
under the terms of this General Public License. The "Program", below,
|
||||
refers to any such program or work, and a "work based on the Program"
|
||||
means either the Program or any derivative work under copyright law:
|
||||
that is to say, a work containing the Program or a portion of it,
|
||||
either verbatim or with modifications and/or translated into another
|
||||
language. (Hereinafter, translation is included without limitation in
|
||||
the term "modification".) Each licensee is addressed as "you".
|
||||
|
||||
Activities other than copying, distribution and modification are not
|
||||
covered by this License; they are outside its scope. The act of
|
||||
running the Program is not restricted, and the output from the Program
|
||||
is covered only if its contents constitute a work based on the
|
||||
Program (independent of having been made by running the Program).
|
||||
Whether that is true depends on what the Program does.
|
||||
|
||||
1. You may copy and distribute verbatim copies of the Program's
|
||||
source code as you receive it, in any medium, provided that you
|
||||
conspicuously and appropriately publish on each copy an appropriate
|
||||
copyright notice and disclaimer of warranty; keep intact all the
|
||||
notices that refer to this License and to the absence of any warranty;
|
||||
and give any other recipients of the Program a copy of this License
|
||||
along with the Program.
|
||||
|
||||
You may charge a fee for the physical act of transferring a copy, and
|
||||
you may at your option offer warranty protection in exchange for a fee.
|
||||
|
||||
2. You may modify your copy or copies of the Program or any portion
|
||||
of it, thus forming a work based on the Program, and copy and
|
||||
distribute such modifications or work under the terms of Section 1
|
||||
above, provided that you also meet all of these conditions:
|
||||
|
||||
a) You must cause the modified files to carry prominent notices
|
||||
stating that you changed the files and the date of any change.
|
||||
|
||||
b) You must cause any work that you distribute or publish, that in
|
||||
whole or in part contains or is derived from the Program or any
|
||||
part thereof, to be licensed as a whole at no charge to all third
|
||||
parties under the terms of this License.
|
||||
|
||||
c) If the modified program normally reads commands interactively
|
||||
when run, you must cause it, when started running for such
|
||||
interactive use in the most ordinary way, to print or display an
|
||||
announcement including an appropriate copyright notice and a
|
||||
notice that there is no warranty (or else, saying that you provide
|
||||
a warranty) and that users may redistribute the program under
|
||||
these conditions, and telling the user how to view a copy of this
|
||||
License. (Exception: if the Program itself is interactive but
|
||||
does not normally print such an announcement, your work based on
|
||||
the Program is not required to print an announcement.)
|
||||
|
||||
These requirements apply to the modified work as a whole. If
|
||||
identifiable sections of that work are not derived from the Program,
|
||||
and can be reasonably considered independent and separate works in
|
||||
themselves, then this License, and its terms, do not apply to those
|
||||
sections when you distribute them as separate works. But when you
|
||||
distribute the same sections as part of a whole which is a work based
|
||||
on the Program, the distribution of the whole must be on the terms of
|
||||
this License, whose permissions for other licensees extend to the
|
||||
entire whole, and thus to each and every part regardless of who wrote it.
|
||||
|
||||
Thus, it is not the intent of this section to claim rights or contest
|
||||
your rights to work written entirely by you; rather, the intent is to
|
||||
exercise the right to control the distribution of derivative or
|
||||
collective works based on the Program.
|
||||
|
||||
In addition, mere aggregation of another work not based on the Program
|
||||
with the Program (or with a work based on the Program) on a volume of
|
||||
a storage or distribution medium does not bring the other work under
|
||||
the scope of this License.
|
||||
|
||||
3. You may copy and distribute the Program (or a work based on it,
|
||||
under Section 2) in object code or executable form under the terms of
|
||||
Sections 1 and 2 above provided that you also do one of the following:
|
||||
|
||||
a) Accompany it with the complete corresponding machine-readable
|
||||
source code, which must be distributed under the terms of Sections
|
||||
1 and 2 above on a medium customarily used for software interchange; or,
|
||||
|
||||
b) Accompany it with a written offer, valid for at least three
|
||||
years, to give any third party, for a charge no more than your
|
||||
cost of physically performing source distribution, a complete
|
||||
machine-readable copy of the corresponding source code, to be
|
||||
distributed under the terms of Sections 1 and 2 above on a medium
|
||||
customarily used for software interchange; or,
|
||||
|
||||
c) Accompany it with the information you received as to the offer
|
||||
to distribute corresponding source code. (This alternative is
|
||||
allowed only for noncommercial distribution and only if you
|
||||
received the program in object code or executable form with such
|
||||
an offer, in accord with Subsection b above.)
|
||||
|
||||
The source code for a work means the preferred form of the work for
|
||||
making modifications to it. For an executable work, complete source
|
||||
code means all the source code for all modules it contains, plus any
|
||||
associated interface definition files, plus the scripts used to
|
||||
control compilation and installation of the executable. However, as a
|
||||
special exception, the source code distributed need not include
|
||||
anything that is normally distributed (in either source or binary
|
||||
form) with the major components (compiler, kernel, and so on) of the
|
||||
operating system on which the executable runs, unless that component
|
||||
itself accompanies the executable.
|
||||
|
||||
If distribution of executable or object code is made by offering
|
||||
access to copy from a designated place, then offering equivalent
|
||||
access to copy the source code from the same place counts as
|
||||
distribution of the source code, even though third parties are not
|
||||
compelled to copy the source along with the object code.
|
||||
|
||||
4. You may not copy, modify, sublicense, or distribute the Program
|
||||
except as expressly provided under this License. Any attempt
|
||||
otherwise to copy, modify, sublicense or distribute the Program is
|
||||
void, and will automatically terminate your rights under this License.
|
||||
However, parties who have received copies, or rights, from you under
|
||||
this License will not have their licenses terminated so long as such
|
||||
parties remain in full compliance.
|
||||
|
||||
5. You are not required to accept this License, since you have not
|
||||
signed it. However, nothing else grants you permission to modify or
|
||||
distribute the Program or its derivative works. These actions are
|
||||
prohibited by law if you do not accept this License. Therefore, by
|
||||
modifying or distributing the Program (or any work based on the
|
||||
Program), you indicate your acceptance of this License to do so, and
|
||||
all its terms and conditions for copying, distributing or modifying
|
||||
the Program or works based on it.
|
||||
|
||||
6. Each time you redistribute the Program (or any work based on the
|
||||
Program), the recipient automatically receives a license from the
|
||||
original licensor to copy, distribute or modify the Program subject to
|
||||
these terms and conditions. You may not impose any further
|
||||
restrictions on the recipients' exercise of the rights granted herein.
|
||||
You are not responsible for enforcing compliance by third parties to
|
||||
this License.
|
||||
|
||||
7. If, as a consequence of a court judgment or allegation of patent
|
||||
infringement or for any other reason (not limited to patent issues),
|
||||
conditions are imposed on you (whether by court order, agreement or
|
||||
otherwise) that contradict the conditions of this License, they do not
|
||||
excuse you from the conditions of this License. If you cannot
|
||||
distribute so as to satisfy simultaneously your obligations under this
|
||||
License and any other pertinent obligations, then as a consequence you
|
||||
may not distribute the Program at all. For example, if a patent
|
||||
license would not permit royalty-free redistribution of the Program by
|
||||
all those who receive copies directly or indirectly through you, then
|
||||
the only way you could satisfy both it and this License would be to
|
||||
refrain entirely from distribution of the Program.
|
||||
|
||||
If any portion of this section is held invalid or unenforceable under
|
||||
any particular circumstance, the balance of the section is intended to
|
||||
apply and the section as a whole is intended to apply in other
|
||||
circumstances.
|
||||
|
||||
It is not the purpose of this section to induce you to infringe any
|
||||
patents or other property right claims or to contest validity of any
|
||||
such claims; this section has the sole purpose of protecting the
|
||||
integrity of the free software distribution system, which is
|
||||
implemented by public license practices. Many people have made
|
||||
generous contributions to the wide range of software distributed
|
||||
through that system in reliance on consistent application of that
|
||||
system; it is up to the author/donor to decide if he or she is willing
|
||||
to distribute software through any other system and a licensee cannot
|
||||
impose that choice.
|
||||
|
||||
This section is intended to make thoroughly clear what is believed to
|
||||
be a consequence of the rest of this License.
|
||||
|
||||
8. If the distribution and/or use of the Program is restricted in
|
||||
certain countries either by patents or by copyrighted interfaces, the
|
||||
original copyright holder who places the Program under this License
|
||||
may add an explicit geographical distribution limitation excluding
|
||||
those countries, so that distribution is permitted only in or among
|
||||
countries not thus excluded. In such case, this License incorporates
|
||||
the limitation as if written in the body of this License.
|
||||
|
||||
9. The Free Software Foundation may publish revised and/or new versions
|
||||
of the General Public License from time to time. Such new versions will
|
||||
be similar in spirit to the present version, but may differ in detail to
|
||||
address new problems or concerns.
|
||||
|
||||
Each version is given a distinguishing version number. If the Program
|
||||
specifies a version number of this License which applies to it and "any
|
||||
later version", you have the option of following the terms and conditions
|
||||
either of that version or of any later version published by the Free
|
||||
Software Foundation. If the Program does not specify a version number of
|
||||
this License, you may choose any version ever published by the Free Software
|
||||
Foundation.
|
||||
|
||||
10. If you wish to incorporate parts of the Program into other free
|
||||
programs whose distribution conditions are different, write to the author
|
||||
to ask for permission. For software which is copyrighted by the Free
|
||||
Software Foundation, write to the Free Software Foundation; we sometimes
|
||||
make exceptions for this. Our decision will be guided by the two goals
|
||||
of preserving the free status of all derivatives of our free software and
|
||||
of promoting the sharing and reuse of software generally.
|
||||
|
||||
NO WARRANTY
|
||||
|
||||
11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
|
||||
FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN
|
||||
OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES
|
||||
PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED
|
||||
OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
|
||||
MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS
|
||||
TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE
|
||||
PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING,
|
||||
REPAIR OR CORRECTION.
|
||||
|
||||
12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
|
||||
WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR
|
||||
REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,
|
||||
INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING
|
||||
OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED
|
||||
TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY
|
||||
YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER
|
||||
PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
|
||||
POSSIBILITY OF SUCH DAMAGES.
|
||||
|
||||
END OF TERMS AND CONDITIONS
|
||||
|
||||
How to Apply These Terms to Your New Programs
|
||||
|
||||
If you develop a new program, and you want it to be of the greatest
|
||||
possible use to the public, the best way to achieve this is to make it
|
||||
free software which everyone can redistribute and change under these terms.
|
||||
|
||||
To do so, attach the following notices to the program. It is safest
|
||||
to attach them to the start of each source file to most effectively
|
||||
convey the exclusion of warranty; and each file should have at least
|
||||
the "copyright" line and a pointer to where the full notice is found.
|
||||
|
||||
<one line to give the program's name and a brief idea of what it does.>
|
||||
Copyright (C) <year> <name of author>
|
||||
|
||||
This program is free software; you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation; either version 2 of the License, or
|
||||
(at your option) any later version.
|
||||
|
||||
This program is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with this program; if not, write to the Free Software
|
||||
Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||
|
||||
|
||||
Also add information on how to contact you by electronic and paper mail.
|
||||
|
||||
If the program is interactive, make it output a short notice like this
|
||||
when it starts in an interactive mode:
|
||||
|
||||
Gnomovision version 69, Copyright (C) year name of author
|
||||
Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
|
||||
This is free software, and you are welcome to redistribute it
|
||||
under certain conditions; type `show c' for details.
|
||||
|
||||
The hypothetical commands `show w' and `show c' should show the appropriate
|
||||
parts of the General Public License. Of course, the commands you use may
|
||||
be called something other than `show w' and `show c'; they could even be
|
||||
mouse-clicks or menu items--whatever suits your program.
|
||||
|
||||
You should also get your employer (if you work as a programmer) or your
|
||||
school, if any, to sign a "copyright disclaimer" for the program, if
|
||||
necessary. Here is a sample; alter the names:
|
||||
|
||||
Yoyodyne, Inc., hereby disclaims all copyright interest in the program
|
||||
`Gnomovision' (which makes passes at compilers) written by James Hacker.
|
||||
|
||||
<signature of Ty Coon>, 1 April 1989
|
||||
Ty Coon, President of Vice
|
||||
|
||||
This General Public License does not permit incorporating your program into
|
||||
proprietary programs. If your program is a subroutine library, you may
|
||||
consider it more useful to permit linking proprietary applications with the
|
||||
library. If this is what you want to do, use the GNU Library General
|
||||
Public License instead of this License.
|
||||
|
||||
|
||||
38
docs/maintenance.html
Normal file
38
docs/maintenance.html
Normal file
|
|
@ -0,0 +1,38 @@
|
|||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
|
||||
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
|
||||
<html xmlns="http://www.w3.org/1999/xhtml">
|
||||
<head>
|
||||
<title>Site Down For Maintenance</title>
|
||||
<meta http-equiv="Pragma" content="no-cache">
|
||||
<meta http-equiv="Cache-Control" content="no-cache">
|
||||
<meta http-equiv="Expires" content="Sat, 01 Dec 2001 00:00:00 GMT">
|
||||
<style type="text/css">
|
||||
.text {
|
||||
position: absolute;
|
||||
z-index: 10;
|
||||
font-family: georgia, verdana, helvetica, arial, sans-serif;
|
||||
font-weight: bold;
|
||||
color: white;
|
||||
top: 40%;
|
||||
width: 95%;
|
||||
text-align: center;
|
||||
text-shadow: black 2px 2px 2px; /* safari */
|
||||
filter:progid:DXImageTransform.Microsoft.dropshadow(offX=1, offY=1, color='black', positive='true') /* ie */
|
||||
}
|
||||
.header {
|
||||
font-size: 30px;
|
||||
}
|
||||
.body {
|
||||
background-color: #6974DE;
|
||||
}
|
||||
|
||||
</style>
|
||||
</head>
|
||||
<body>
|
||||
<div class="text">
|
||||
<div class="header">Maintenance</div>
|
||||
<p> This site is currently undergoing maintenance. Please check back again shortly. </p>
|
||||
</div>
|
||||
<img src="/extras/background.jpg" border="0" style="position: absolute; top: 0; left: 0; width: 100%; height: 100%; z-index: 5;" />
|
||||
</body>
|
||||
</html>
|
||||
2543
docs/previousVersion.sql
Normal file
2543
docs/previousVersion.sql
Normal file
File diff suppressed because one or more lines are too long
155
docs/templates.txt
Normal file
155
docs/templates.txt
Normal file
|
|
@ -0,0 +1,155 @@
|
|||
This is a running list of template changes made during upgrades. If you have copied the default
|
||||
templates, you will need to apply these changes manually to your copies.
|
||||
|
||||
7.10.22
|
||||
* Thingy CSS file - root/import/thingy-templates/thingy.css
|
||||
Add CSS to make sure that overflows are visible, to handle style that hide overflow by default.
|
||||
|
||||
7.10.18
|
||||
* Collaboration System Default Notification Template /default_forum_notification
|
||||
Replace table with divs to make inline replying easier.
|
||||
|
||||
7.10.15
|
||||
* Gallery CSS - root/import/gallery-templates/gallery.css
|
||||
Remove float:left on .wgAlbum.
|
||||
* Email Receipt (Default) - shopping-cart-collateral-items/email-receipt-default
|
||||
Added code to prevent links to items with bad skus to both templates.
|
||||
|
||||
7.10.14
|
||||
* My Purchases Detail (Default) - shopping-cart-collateral-items/my-purchases-detail-default
|
||||
* Email Receipt (Default) - shopping-cart-collateral-items/email-receipt-default
|
||||
Added code to prevent links to items with bad skus to both templates.
|
||||
|
||||
7.10.13
|
||||
* Cart (Default) - default-shopping-cart-template
|
||||
In 7.10.7, hardcoded JavaScript was removed from the Cart code and migrated to the Cart template. The list of Javascript and files which are needed is below. Please add it to the Attachments or Extra Head Tags for any customized Cart templates.
|
||||
^Extras(/yui/build/yahoo-dom-event/yahoo-dom-event.js);
|
||||
^Extras(/yui/build/json/json-min.js);
|
||||
^Extras(/yui/build/connection/connection-min.js);
|
||||
^Extras(/underscore/underscore-min.js);
|
||||
^Extras(/shop/cart.js);
|
||||
|
||||
7.10.11
|
||||
* Default View Thing Data Template - templates/thingy-default-view-thing
|
||||
Change how the title is rendered. If no fields are set to be displayed in the title, show the internationalized word View.
|
||||
If fields are set, then display the viewScreenTitle variable instead.
|
||||
|
||||
7.10.9
|
||||
|
||||
* Underground style template CSS - style-underground/css/underground-webgui-css
|
||||
Make labels render inline.
|
||||
|
||||
7.10.8
|
||||
|
||||
* Friend Manager view template - root/import/account/friendmanager/view
|
||||
Add a div to hold the pagination.
|
||||
|
||||
* Event Template - root/import/calendar-templates/default-calendar-event
|
||||
Add foreground/font color to the CSS for the details.
|
||||
Move border property to the table instead of assigning it to the body of the page.
|
||||
|
||||
* EU VAX Template
|
||||
Internationalized the text in the template.
|
||||
|
||||
* Calendar Event List template - root/import/calendar-templates/default-calendar-list-view
|
||||
Only display changes in new months, not months AND years AND days.
|
||||
|
||||
7.10.4
|
||||
|
||||
* DataForm email template - default_email
|
||||
Do HTML escaping on field values. Move table tags outside of the loops so only one table
|
||||
is generated.
|
||||
|
||||
* Template Variable template
|
||||
The URL for that template has been changed from "help" to "root/import/adminconsole/help", making
|
||||
the short URL Help available for WebGUI content use.
|
||||
|
||||
* EMS Badge Listing template - root/import/ems/ems-badge-listing-default
|
||||
Changed the javascript to use a custom formatter for the Badge price.
|
||||
|
||||
7.10.3
|
||||
|
||||
* Carousel Default Template - root/import/carousel/carousel-default
|
||||
Add a height parameter to the template.
|
||||
|
||||
* survey.css
|
||||
Removed relative positioning and offset from top.
|
||||
|
||||
* root/import/survey/surveyedit.css
|
||||
Reexported the package from the default content due to potential issues with earlier upgrades
|
||||
not installing correctly.
|
||||
|
||||
* root/import/workflow-activity-templates
|
||||
Added a folder to hold the assorted Workflow Activity templates.
|
||||
|
||||
7.10.2
|
||||
|
||||
* The Make Page Printable template has changed (as per bug #11857). The HTML
|
||||
is now consistent with other default Style templates. The Plain Black logo and
|
||||
copyright info have been removed and a stylesheet was added to provide very
|
||||
simple default formatting for text, header and footer (makepageprintable.css).
|
||||
|
||||
7.10.1
|
||||
|
||||
* Profile templates - root/import/account/profile/default-view-profile-template
|
||||
- root/import/account/profile/profile-account-layout
|
||||
Moved the "back to profile" link from the Profile View template to the Profile Layout template.
|
||||
|
||||
* Asset Report Template - asset-report/asset-report-default-template
|
||||
Remove the empty template attachment
|
||||
|
||||
* Gallery Album Edit Template
|
||||
Update the inline javascript in the script tag to make drag & drop sorting work in IE7
|
||||
|
||||
if (typeof Gallery == "undefined") {
|
||||
Gallery = {};
|
||||
Gallery.DDSorting = {};
|
||||
}
|
||||
Gallery.DDSorting.url = '<tmpl_var url escape="js">';
|
||||
|
||||
* Story Topic Template
|
||||
Since topStory template variables are available all the time, manually add the topStory into the list of
|
||||
stories when the topic is no viewed standalone. Also note the new template variables for the the delete
|
||||
and edit icons for the top story.
|
||||
|
||||
<ul>
|
||||
<tmpl_unless standAlone>
|
||||
<li><tmpl_var topStoryDeleteIcon><tmpl_var topStoryEditIcon> <a href="<tmpl_var topStoryUrl>"><tmpl_var topStoryTitle></a></li>
|
||||
</tmpl_unless>
|
||||
<tmpl_loop story_loop>
|
||||
|
||||
* Thingy searchResults_json
|
||||
This is a JSON-encoded version of searchResults_loop, which allows people to access Thingy search results
|
||||
in Javascript/Flash/etc.. For example, you can use OpenFlashCharts2 (http://teethgrinder.co.uk/open-flash-chart-2)
|
||||
and SWFObject to access the data and then display it as a pretty custom chart via the following:
|
||||
|
||||
<tmpl_if searchResult_loop>
|
||||
<div id="chart-container">
|
||||
<div id="chart">Loading..</div>
|
||||
</div>
|
||||
<script type="text/javascript">
|
||||
function open_flash_chart_data() {
|
||||
var data_json = "<tmpl_var searchResult_json ESCAPE=JS>";
|
||||
var data = YAHOO.lang.JSON.parse(data_json);
|
||||
var chart = {
|
||||
elements: [
|
||||
// populate dynamically from data object
|
||||
]
|
||||
};
|
||||
return YAHOO.lang.JSON.stringify(chart);
|
||||
}
|
||||
// Embed the chart
|
||||
swfobject.embedSWF(
|
||||
'/path/to/open-flash-chart.swf', // url
|
||||
'chart', // container element id
|
||||
'100%', // width
|
||||
'100%', // height
|
||||
'9.0.0', // version
|
||||
'/path/to/swfobject/expressInstall.swf', // expressInstall
|
||||
{ loading: 'Loading...' }, // flashvars
|
||||
{}, // params
|
||||
{} // attributes
|
||||
);
|
||||
</script>
|
||||
</tmpl_if>
|
||||
|
||||
126
docs/upgrades/_upgrade.skeleton
Normal file
126
docs/upgrades/_upgrade.skeleton
Normal file
|
|
@ -0,0 +1,126 @@
|
|||
#!/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 = "0.0.0"; # make this match what version you're going to
|
||||
my $quiet; # this line required
|
||||
|
||||
|
||||
my $session = start(); # this line required
|
||||
|
||||
# upgrade functions go here
|
||||
|
||||
finish($session); # this line required
|
||||
|
||||
|
||||
#----------------------------------------------------------------------------
|
||||
# Describe what our function does
|
||||
#sub exampleFunction {
|
||||
# my $session = shift;
|
||||
# print "\tWe're doing some stuff here that you should know about... " unless $quiet;
|
||||
# # and here's our code
|
||||
# print "DONE!\n" unless $quiet;
|
||||
#}
|
||||
|
||||
|
||||
# -------------- DO NOT EDIT BELOW THIS LINE --------------------------------
|
||||
|
||||
#----------------------------------------------------------------------------
|
||||
# Add a package to the import node
|
||||
sub addPackage {
|
||||
my $session = shift;
|
||||
my $file = shift;
|
||||
|
||||
print "\tUpgrading package $file\n" unless $quiet;
|
||||
# Make a storage location for the package
|
||||
my $storage = WebGUI::Storage->createTemp( $session );
|
||||
$storage->addFileFromFilesystem( $file );
|
||||
|
||||
# Import the package into the import node
|
||||
my $package = eval {
|
||||
my $node = WebGUI::Asset->getImportNode($session);
|
||||
$node->importPackage( $storage, {
|
||||
overwriteLatest => 1,
|
||||
clearPackageFlag => 1,
|
||||
setDefaultTemplate => 1,
|
||||
} );
|
||||
};
|
||||
|
||||
if ($package eq 'corrupt') {
|
||||
die "Corrupt package found in $file. Stopping upgrade.\n";
|
||||
}
|
||||
if ($@ || !defined $package) {
|
||||
die "Error during package import on $file: $@\nStopping upgrade\n.";
|
||||
}
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
#-------------------------------------------------
|
||||
sub start {
|
||||
my $configFile;
|
||||
$|=1; #disable output buffering
|
||||
GetOptions(
|
||||
'configFile=s'=>\$configFile,
|
||||
'quiet'=>\$quiet
|
||||
);
|
||||
if ($toVersion eq "0.0.0") {
|
||||
die "toVersion=$toVersion, aborting upgrade\n";
|
||||
}
|
||||
my $session = WebGUI::Session->open($webguiRoot,$configFile);
|
||||
$session->user({userId=>3});
|
||||
my $versionTag = WebGUI::VersionTag->getWorking($session);
|
||||
$versionTag->set({name=>"Upgrade to ".$toVersion});
|
||||
return $session;
|
||||
}
|
||||
|
||||
#-------------------------------------------------
|
||||
sub finish {
|
||||
my $session = shift;
|
||||
updateTemplates($session);
|
||||
my $versionTag = WebGUI::VersionTag->getWorking($session);
|
||||
$versionTag->commit;
|
||||
$session->db->write("insert into webguiVersion values (".$session->db->quote($toVersion).",'upgrade',".time().")");
|
||||
$session->close();
|
||||
}
|
||||
|
||||
#-------------------------------------------------
|
||||
sub updateTemplates {
|
||||
my $session = shift;
|
||||
return undef unless (-d "packages-".$toVersion);
|
||||
print "\tUpdating packages.\n" unless ($quiet);
|
||||
opendir(DIR,"packages-".$toVersion);
|
||||
my @files = readdir(DIR);
|
||||
closedir(DIR);
|
||||
my $newFolder = undef;
|
||||
foreach my $file (@files) {
|
||||
next unless ($file =~ /\.wgpkg$/);
|
||||
# Fix the filename to include a path
|
||||
$file = "packages-" . $toVersion . "/" . $file;
|
||||
addPackage( $session, $file );
|
||||
}
|
||||
}
|
||||
|
||||
#vim:ft=perl
|
||||
Binary file not shown.
BIN
docs/upgrades/packages-7.10.1/root_import_account_profile.wgpkg
Normal file
BIN
docs/upgrades/packages-7.10.1/root_import_account_profile.wgpkg
Normal file
Binary file not shown.
Binary file not shown.
Binary file not shown.
BIN
docs/upgrades/packages-7.10.10/job_listing.wgpkg
Normal file
BIN
docs/upgrades/packages-7.10.10/job_listing.wgpkg
Normal file
Binary file not shown.
Binary file not shown.
BIN
docs/upgrades/packages-7.10.12/image.wgpkg
Normal file
BIN
docs/upgrades/packages-7.10.12/image.wgpkg
Normal file
Binary file not shown.
BIN
docs/upgrades/packages-7.10.12/root_import_dashboard.wgpkg
Normal file
BIN
docs/upgrades/packages-7.10.12/root_import_dashboard.wgpkg
Normal file
Binary file not shown.
BIN
docs/upgrades/packages-7.10.13/default_search2.wgpkg
Normal file
BIN
docs/upgrades/packages-7.10.13/default_search2.wgpkg
Normal file
Binary file not shown.
BIN
docs/upgrades/packages-7.10.13/greenportal.wgpkg
Normal file
BIN
docs/upgrades/packages-7.10.13/greenportal.wgpkg
Normal file
Binary file not shown.
Binary file not shown.
BIN
docs/upgrades/packages-7.10.13/style-underground.wgpkg
Normal file
BIN
docs/upgrades/packages-7.10.13/style-underground.wgpkg
Normal file
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
BIN
docs/upgrades/packages-7.10.15/home_map_map-templates.wgpkg
Normal file
BIN
docs/upgrades/packages-7.10.15/home_map_map-templates.wgpkg
Normal file
Binary file not shown.
Binary file not shown.
BIN
docs/upgrades/packages-7.10.18/default_forum_notification.wgpkg
Normal file
BIN
docs/upgrades/packages-7.10.18/default_forum_notification.wgpkg
Normal file
Binary file not shown.
Binary file not shown.
BIN
docs/upgrades/packages-7.10.2/root_import_style.wgpkg
Normal file
BIN
docs/upgrades/packages-7.10.2/root_import_style.wgpkg
Normal file
Binary file not shown.
BIN
docs/upgrades/packages-7.10.21/default_forum_notification.wgpkg
Normal file
BIN
docs/upgrades/packages-7.10.21/default_forum_notification.wgpkg
Normal file
Binary file not shown.
BIN
docs/upgrades/packages-7.10.22/default_emsbadge.wgpkg
Normal file
BIN
docs/upgrades/packages-7.10.22/default_emsbadge.wgpkg
Normal file
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
BIN
docs/upgrades/packages-7.10.23/stockdatatmpl000000001.wgpkg
Normal file
BIN
docs/upgrades/packages-7.10.23/stockdatatmpl000000001.wgpkg
Normal file
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
BIN
docs/upgrades/packages-7.10.3/crystalx_crystalx_navigation.wgpkg
Normal file
BIN
docs/upgrades/packages-7.10.3/crystalx_crystalx_navigation.wgpkg
Normal file
Binary file not shown.
BIN
docs/upgrades/packages-7.10.3/root_import_auth.wgpkg
Normal file
BIN
docs/upgrades/packages-7.10.3/root_import_auth.wgpkg
Normal file
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
BIN
docs/upgrades/packages-7.10.3/survey.css.wgpkg
Normal file
BIN
docs/upgrades/packages-7.10.3/survey.css.wgpkg
Normal file
Binary file not shown.
BIN
docs/upgrades/packages-7.10.4/default_email.wgpkg
Normal file
BIN
docs/upgrades/packages-7.10.4/default_email.wgpkg
Normal file
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
BIN
docs/upgrades/packages-7.10.7/data_list.wgpkg
Normal file
BIN
docs/upgrades/packages-7.10.7/data_list.wgpkg
Normal file
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
BIN
docs/upgrades/packages-7.10.9/style-underground.wgpkg
Normal file
BIN
docs/upgrades/packages-7.10.9/style-underground.wgpkg
Normal file
Binary file not shown.
BIN
docs/upgrades/packages-7.9.34-7.10.22/merged.wgpkg
Normal file
BIN
docs/upgrades/packages-7.9.34-7.10.22/merged.wgpkg
Normal file
Binary file not shown.
223
docs/upgrades/upgrade_7.10.0-7.10.1.pl
Normal file
223
docs/upgrades/upgrade_7.10.0-7.10.1.pl
Normal file
|
|
@ -0,0 +1,223 @@
|
|||
#!/usr/bin/env perl
|
||||
|
||||
#-------------------------------------------------------------------
|
||||
# WebGUI is Copyright 2001-2009 Plain Black Corporation.
|
||||
#-------------------------------------------------------------------
|
||||
# Please read the legal notices (docs/legal.txt) and the license
|
||||
# (docs/license.txt) that came with this distribution before using
|
||||
# this software.
|
||||
#-------------------------------------------------------------------
|
||||
# http://www.plainblack.com info@plainblack.com
|
||||
#-------------------------------------------------------------------
|
||||
|
||||
our ($webguiRoot);
|
||||
|
||||
BEGIN {
|
||||
$webguiRoot = "../..";
|
||||
unshift (@INC, $webguiRoot."/lib");
|
||||
}
|
||||
|
||||
use strict;
|
||||
use Getopt::Long;
|
||||
use WebGUI::Session;
|
||||
use WebGUI::Storage;
|
||||
use WebGUI::Asset;
|
||||
|
||||
|
||||
my $toVersion = '7.10.1';
|
||||
my $quiet; # this line required
|
||||
|
||||
|
||||
my $session = start(); # this line required
|
||||
|
||||
# upgrade functions go here
|
||||
uniqueProductLocations($session);
|
||||
removeBadSpanishFile($session);
|
||||
i18nForAddonsTitle($session);
|
||||
|
||||
finish($session); # this line required
|
||||
|
||||
|
||||
#----------------------------------------------------------------------------
|
||||
# Describe what our function does
|
||||
sub uniqueProductLocations {
|
||||
my $session = shift;
|
||||
print "\tMake sure each Product revision has its own storage location... " unless $quiet;
|
||||
use WebGUI::Asset::Sku::Product;
|
||||
my $get_product = WebGUI::Asset::Sku::Product->getIsa($session);
|
||||
# and here's our code
|
||||
PRODUCT: while (1) {
|
||||
my $product = eval { $get_product->(); };
|
||||
next PRODUCT if Exception::Class->caught();
|
||||
last PRODUCT unless $product;
|
||||
next PRODUCT unless $product->getRevisionCount > 1;
|
||||
my $products = $product->getRevisions;
|
||||
##We already have the first revision, so remove it.
|
||||
shift @{ $products };
|
||||
foreach my $property (qw/image1 image2 image3 brochure manual warranty/) {
|
||||
##Check each property. If there's a duplicate, then make copy of the storage location and update the older version.
|
||||
foreach my $revision (@{ $products }) {
|
||||
if ($revision->get($property) eq $product->get($property)) {
|
||||
$product->_duplicateFile($revision, $property,);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
print "DONE!\n" unless $quiet;
|
||||
}
|
||||
|
||||
#----------------------------------------------------------------------------
|
||||
# This internationalizes the link text of the addons link in the adminconsole
|
||||
sub i18nForAddonsTitle {
|
||||
my $session = shift;
|
||||
print "\tInternationalize the text of the addons link in the adminconsole... " unless $quiet;
|
||||
$session->config->set('adminConsole/addons',
|
||||
{
|
||||
icon => "addons.png",
|
||||
uiLevel => 1,
|
||||
group => "12",
|
||||
url => "http://www.webgui.org/addons",
|
||||
title => "^International(Addons title,WebGUI);"
|
||||
}
|
||||
);
|
||||
print "DONE!\n" unless $quiet;
|
||||
}
|
||||
#----------------------------------------------------------------------------
|
||||
# Describe what our function does
|
||||
sub removeBadSpanishFile {
|
||||
my $session = shift;
|
||||
print "\tRemove a bad Spanish translation file... " unless $quiet;
|
||||
use File::Spec;
|
||||
unlink File::Spec->catfile($webguiRoot, qw/lib WebGUi i18n Spanish .pm/);
|
||||
# and here's our code
|
||||
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 "\tRepacking all templates, this may take a while..." unless $quiet;
|
||||
my $sth = $session->db->read( "SELECT assetId, revisionDate FROM template" );
|
||||
while ( my ($assetId, $revisionDate) = $sth->array ) {
|
||||
my $asset = WebGUI::Asset->newByDynamicClass( $session, $assetId, $revisionDate );
|
||||
next unless $asset;
|
||||
$asset->update({
|
||||
template => $asset->get('template'),
|
||||
});
|
||||
}
|
||||
print "DONE!\n" unless $quiet;
|
||||
|
||||
print "\tRepacking head tags in all assets, this may take a while..." unless $quiet;
|
||||
$sth = $session->db->read( "SELECT assetId, revisionDate FROM assetData where usePackedHeadTags=1" );
|
||||
while ( my ($assetId, $revisionDate) = $sth->array ) {
|
||||
my $asset = WebGUI::Asset->newByDynamicClass( $session, $assetId, $revisionDate );
|
||||
next unless $asset;
|
||||
$asset->update({
|
||||
extraHeadTags => $asset->get('extraHeadTags'),
|
||||
});
|
||||
}
|
||||
print "DONE!\n" unless $quiet;
|
||||
|
||||
print "\tRepacking all snippets, this may take a while..." unless $quiet;
|
||||
$sth = $session->db->read( "SELECT assetId, revisionDate FROM snippet" );
|
||||
while ( my ($assetId, $revisionDate) = $sth->array ) {
|
||||
my $asset = WebGUI::Asset->newByDynamicClass( $session, $assetId, $revisionDate );
|
||||
next unless $asset;
|
||||
$asset->update({
|
||||
snippet => $asset->get('snippet'),
|
||||
});
|
||||
}
|
||||
|
||||
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;
|
||||
|
||||
print "\tUpgrading package $file\n" unless $quiet;
|
||||
# Make a storage location for the package
|
||||
my $storage = WebGUI::Storage->createTemp( $session );
|
||||
$storage->addFileFromFilesystem( $file );
|
||||
|
||||
# Import the package into the import node
|
||||
my $package = eval {
|
||||
my $node = WebGUI::Asset->getImportNode($session);
|
||||
$node->importPackage( $storage, {
|
||||
overwriteLatest => 1,
|
||||
clearPackageFlag => 1,
|
||||
setDefaultTemplate => 1,
|
||||
} );
|
||||
};
|
||||
|
||||
if ($package eq 'corrupt') {
|
||||
die "Corrupt package found in $file. Stopping upgrade.\n";
|
||||
}
|
||||
if ($@ || !defined $package) {
|
||||
die "Error during package import on $file: $@\nStopping upgrade\n.";
|
||||
}
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
#-------------------------------------------------
|
||||
sub start {
|
||||
my $configFile;
|
||||
$|=1; #disable output buffering
|
||||
GetOptions(
|
||||
'configFile=s'=>\$configFile,
|
||||
'quiet'=>\$quiet
|
||||
);
|
||||
my $session = WebGUI::Session->open($webguiRoot,$configFile);
|
||||
$session->user({userId=>3});
|
||||
my $versionTag = WebGUI::VersionTag->getWorking($session);
|
||||
$versionTag->set({name=>"Upgrade to ".$toVersion});
|
||||
return $session;
|
||||
}
|
||||
|
||||
#-------------------------------------------------
|
||||
sub finish {
|
||||
my $session = shift;
|
||||
updateTemplates($session);
|
||||
repackTemplates( $session );
|
||||
my $versionTag = WebGUI::VersionTag->getWorking($session);
|
||||
$versionTag->commit;
|
||||
$session->db->write("insert into webguiVersion values (".$session->db->quote($toVersion).",'upgrade',".time().")");
|
||||
$session->close();
|
||||
}
|
||||
|
||||
#-------------------------------------------------
|
||||
sub updateTemplates {
|
||||
my $session = shift;
|
||||
return undef unless (-d "packages-".$toVersion);
|
||||
print "\tUpdating packages.\n" unless ($quiet);
|
||||
opendir(DIR,"packages-".$toVersion);
|
||||
my @files = readdir(DIR);
|
||||
closedir(DIR);
|
||||
my $newFolder = undef;
|
||||
foreach my $file (@files) {
|
||||
next unless ($file =~ /\.wgpkg$/);
|
||||
# Fix the filename to include a path
|
||||
$file = "packages-" . $toVersion . "/" . $file;
|
||||
addPackage( $session, $file );
|
||||
}
|
||||
}
|
||||
|
||||
#vim:ft=perl
|
||||
124
docs/upgrades/upgrade_7.10.1-7.10.2.pl
Normal file
124
docs/upgrades/upgrade_7.10.1-7.10.2.pl
Normal file
|
|
@ -0,0 +1,124 @@
|
|||
#!/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::Inbox;
|
||||
|
||||
|
||||
my $toVersion = '7.10.2';
|
||||
my $quiet; # this line required
|
||||
|
||||
|
||||
my $session = start(); # this line required
|
||||
|
||||
# upgrade functions go here
|
||||
|
||||
finish($session); # this line required
|
||||
|
||||
|
||||
#----------------------------------------------------------------------------
|
||||
# Describe what our function does
|
||||
#sub exampleFunction {
|
||||
# my $session = shift;
|
||||
# print "\tWe're doing some stuff here that you should know about... " unless $quiet;
|
||||
# # and here's our code
|
||||
# print "DONE!\n" unless $quiet;
|
||||
#}
|
||||
|
||||
|
||||
# -------------- DO NOT EDIT BELOW THIS LINE --------------------------------
|
||||
|
||||
#----------------------------------------------------------------------------
|
||||
# Add a package to the import node
|
||||
sub addPackage {
|
||||
my $session = shift;
|
||||
my $file = shift;
|
||||
|
||||
print "\tUpgrading package $file\n" unless $quiet;
|
||||
# Make a storage location for the package
|
||||
my $storage = WebGUI::Storage->createTemp( $session );
|
||||
$storage->addFileFromFilesystem( $file );
|
||||
|
||||
# Import the package into the import node
|
||||
my $package = eval {
|
||||
my $node = WebGUI::Asset->getImportNode($session);
|
||||
$node->importPackage( $storage, {
|
||||
overwriteLatest => 1,
|
||||
clearPackageFlag => 1,
|
||||
setDefaultTemplate => 1,
|
||||
} );
|
||||
};
|
||||
|
||||
if ($package eq 'corrupt') {
|
||||
die "Corrupt package found in $file. Stopping upgrade.\n";
|
||||
}
|
||||
if ($@ || !defined $package) {
|
||||
die "Error during package import on $file: $@\nStopping upgrade\n.";
|
||||
}
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
#-------------------------------------------------
|
||||
sub start {
|
||||
my $configFile;
|
||||
$|=1; #disable output buffering
|
||||
GetOptions(
|
||||
'configFile=s'=>\$configFile,
|
||||
'quiet'=>\$quiet
|
||||
);
|
||||
my $session = WebGUI::Session->open($webguiRoot,$configFile);
|
||||
$session->user({userId=>3});
|
||||
my $versionTag = WebGUI::VersionTag->getWorking($session);
|
||||
$versionTag->set({name=>"Upgrade to ".$toVersion});
|
||||
return $session;
|
||||
}
|
||||
|
||||
#-------------------------------------------------
|
||||
sub finish {
|
||||
my $session = shift;
|
||||
updateTemplates($session);
|
||||
my $versionTag = WebGUI::VersionTag->getWorking($session);
|
||||
$versionTag->commit;
|
||||
$session->db->write("insert into webguiVersion values (".$session->db->quote($toVersion).",'upgrade',".time().")");
|
||||
$session->close();
|
||||
}
|
||||
|
||||
#-------------------------------------------------
|
||||
sub updateTemplates {
|
||||
my $session = shift;
|
||||
return undef unless (-d "packages-".$toVersion);
|
||||
print "\tUpdating packages.\n" unless ($quiet);
|
||||
opendir(DIR,"packages-".$toVersion);
|
||||
my @files = readdir(DIR);
|
||||
closedir(DIR);
|
||||
my $newFolder = undef;
|
||||
foreach my $file (@files) {
|
||||
next unless ($file =~ /\.wgpkg$/);
|
||||
# Fix the filename to include a path
|
||||
$file = "packages-" . $toVersion . "/" . $file;
|
||||
addPackage( $session, $file );
|
||||
}
|
||||
}
|
||||
|
||||
#vim:ft=perl
|
||||
123
docs/upgrades/upgrade_7.10.10-7.10.11.pl
Normal file
123
docs/upgrades/upgrade_7.10.10-7.10.11.pl
Normal file
|
|
@ -0,0 +1,123 @@
|
|||
#!/usr/bin/env perl
|
||||
|
||||
#-------------------------------------------------------------------
|
||||
# WebGUI is Copyright 2001-2009 Plain Black Corporation.
|
||||
#-------------------------------------------------------------------
|
||||
# Please read the legal notices (docs/legal.txt) and the license
|
||||
# (docs/license.txt) that came with this distribution before using
|
||||
# this software.
|
||||
#-------------------------------------------------------------------
|
||||
# http://www.plainblack.com info@plainblack.com
|
||||
#-------------------------------------------------------------------
|
||||
|
||||
our ($webguiRoot);
|
||||
|
||||
BEGIN {
|
||||
$webguiRoot = "../..";
|
||||
unshift (@INC, $webguiRoot."/lib");
|
||||
}
|
||||
|
||||
use strict;
|
||||
use Getopt::Long;
|
||||
use WebGUI::Session;
|
||||
use WebGUI::Storage;
|
||||
use WebGUI::Asset;
|
||||
|
||||
|
||||
my $toVersion = '7.10.11';
|
||||
my $quiet; # this line required
|
||||
|
||||
|
||||
my $session = start(); # this line required
|
||||
|
||||
# upgrade functions go here
|
||||
|
||||
finish($session); # this line required
|
||||
|
||||
|
||||
#----------------------------------------------------------------------------
|
||||
# Describe what our function does
|
||||
#sub exampleFunction {
|
||||
# my $session = shift;
|
||||
# print "\tWe're doing some stuff here that you should know about... " unless $quiet;
|
||||
# # and here's our code
|
||||
# print "DONE!\n" unless $quiet;
|
||||
#}
|
||||
|
||||
|
||||
# -------------- DO NOT EDIT BELOW THIS LINE --------------------------------
|
||||
|
||||
#----------------------------------------------------------------------------
|
||||
# Add a package to the import node
|
||||
sub addPackage {
|
||||
my $session = shift;
|
||||
my $file = shift;
|
||||
|
||||
print "\tUpgrading package $file\n" unless $quiet;
|
||||
# Make a storage location for the package
|
||||
my $storage = WebGUI::Storage->createTemp( $session );
|
||||
$storage->addFileFromFilesystem( $file );
|
||||
|
||||
# Import the package into the import node
|
||||
my $package = eval {
|
||||
my $node = WebGUI::Asset->getImportNode($session);
|
||||
$node->importPackage( $storage, {
|
||||
overwriteLatest => 1,
|
||||
clearPackageFlag => 1,
|
||||
setDefaultTemplate => 1,
|
||||
} );
|
||||
};
|
||||
|
||||
if ($package eq 'corrupt') {
|
||||
die "Corrupt package found in $file. Stopping upgrade.\n";
|
||||
}
|
||||
if ($@ || !defined $package) {
|
||||
die "Error during package import on $file: $@\nStopping upgrade\n.";
|
||||
}
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
#-------------------------------------------------
|
||||
sub start {
|
||||
my $configFile;
|
||||
$|=1; #disable output buffering
|
||||
GetOptions(
|
||||
'configFile=s'=>\$configFile,
|
||||
'quiet'=>\$quiet
|
||||
);
|
||||
my $session = WebGUI::Session->open($webguiRoot,$configFile);
|
||||
$session->user({userId=>3});
|
||||
my $versionTag = WebGUI::VersionTag->getWorking($session);
|
||||
$versionTag->set({name=>"Upgrade to ".$toVersion});
|
||||
return $session;
|
||||
}
|
||||
|
||||
#-------------------------------------------------
|
||||
sub finish {
|
||||
my $session = shift;
|
||||
updateTemplates($session);
|
||||
my $versionTag = WebGUI::VersionTag->getWorking($session);
|
||||
$versionTag->commit;
|
||||
$session->db->write("insert into webguiVersion values (".$session->db->quote($toVersion).",'upgrade',".time().")");
|
||||
$session->close();
|
||||
}
|
||||
|
||||
#-------------------------------------------------
|
||||
sub updateTemplates {
|
||||
my $session = shift;
|
||||
return undef unless (-d "packages-".$toVersion);
|
||||
print "\tUpdating packages.\n" unless ($quiet);
|
||||
opendir(DIR,"packages-".$toVersion);
|
||||
my @files = readdir(DIR);
|
||||
closedir(DIR);
|
||||
my $newFolder = undef;
|
||||
foreach my $file (@files) {
|
||||
next unless ($file =~ /\.wgpkg$/);
|
||||
# Fix the filename to include a path
|
||||
$file = "packages-" . $toVersion . "/" . $file;
|
||||
addPackage( $session, $file );
|
||||
}
|
||||
}
|
||||
|
||||
#vim:ft=perl
|
||||
189
docs/upgrades/upgrade_7.10.11-7.10.12.pl
Normal file
189
docs/upgrades/upgrade_7.10.11-7.10.12.pl
Normal file
|
|
@ -0,0 +1,189 @@
|
|||
#!/usr/bin/env perl
|
||||
|
||||
#-------------------------------------------------------------------
|
||||
# WebGUI is Copyright 2001-2009 Plain Black Corporation.
|
||||
#-------------------------------------------------------------------
|
||||
# Please read the legal notices (docs/legal.txt) and the license
|
||||
# (docs/license.txt) that came with this distribution before using
|
||||
# this software.
|
||||
#-------------------------------------------------------------------
|
||||
# http://www.plainblack.com info@plainblack.com
|
||||
#-------------------------------------------------------------------
|
||||
|
||||
our ($webguiRoot);
|
||||
|
||||
BEGIN {
|
||||
$webguiRoot = "../..";
|
||||
unshift (@INC, $webguiRoot."/lib");
|
||||
}
|
||||
|
||||
use strict;
|
||||
use Getopt::Long;
|
||||
use WebGUI::Session;
|
||||
use WebGUI::Storage;
|
||||
use WebGUI::Asset;
|
||||
|
||||
|
||||
my $toVersion = '7.10.12';
|
||||
my $quiet; # this line required
|
||||
|
||||
|
||||
my $session = start(); # this line required
|
||||
|
||||
# upgrade functions go here
|
||||
installNewDashboardTables($session);
|
||||
addStockDataCacheColumn($session);
|
||||
addWeatherDataCacheColumn($session);
|
||||
addLastModifiedByMacro($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 addLastModifiedByMacro {
|
||||
my $session = shift;
|
||||
print "\tAdd LastModifiedBy macro to the config file... " unless $quiet;
|
||||
# and here's our code
|
||||
$session->config->addToHash('macros', 'LastModifiedBy', 'LastModifiedBy');
|
||||
print "DONE!\n" unless $quiet;
|
||||
}
|
||||
|
||||
#----------------------------------------------------------------------------
|
||||
# Describe what our function does
|
||||
sub installNewDashboardTables {
|
||||
my $session = shift;
|
||||
print "\tInstall new Dashboard tables... " unless $quiet;
|
||||
$session->db->write(<<EOSQL);
|
||||
CREATE TABLE IF NOT EXISTS Dashboard_dashlets (
|
||||
dashboardAssetId CHAR(22) BINARY,
|
||||
dashletAssetId CHAR(22) BINARY,
|
||||
isStatic BOOLEAN,
|
||||
isRequired BOOLEAN,
|
||||
PRIMARY KEY (dashboardAssetId, dashletAssetId)
|
||||
) TYPE=MyISAM CHARSET=utf8;
|
||||
EOSQL
|
||||
$session->db->write(<<EOSQL);
|
||||
CREATE TABLE IF NOT EXISTS Dashboard_userPrefs (
|
||||
dashboardAssetId CHAR(22) BINARY,
|
||||
dashletAssetId CHAR(22) BINARY,
|
||||
userId CHAR(22) BINARY,
|
||||
isMinimized BOOLEAN,
|
||||
properties LONGTEXT,
|
||||
PRIMARY KEY (dashboardAssetId, dashletAssetId, userId)
|
||||
) TYPE=MyISAM CHARSET=utf8;
|
||||
EOSQL
|
||||
# and here's our code
|
||||
print "DONE!\n" unless $quiet;
|
||||
}
|
||||
|
||||
#----------------------------------------------------------------------------
|
||||
# Describe what our function does
|
||||
sub addStockDataCacheColumn {
|
||||
my $session = shift;
|
||||
print "\tAdd cache column for the StockData asset... " unless $quiet;
|
||||
$session->db->write(<<EOSQL);
|
||||
ALTER TABLE StockData ADD COLUMN cacheTimeout BIGINT
|
||||
EOSQL
|
||||
# and here's our code
|
||||
print "DONE!\n" unless $quiet;
|
||||
}
|
||||
|
||||
#----------------------------------------------------------------------------
|
||||
# Describe what our function does
|
||||
sub addWeatherDataCacheColumn {
|
||||
my $session = shift;
|
||||
print "\tAdd cache column for the WeatherData asset... " unless $quiet;
|
||||
$session->db->write(<<EOSQL);
|
||||
ALTER TABLE WeatherData ADD COLUMN cacheTimeout BIGINT
|
||||
EOSQL
|
||||
# and here's our code
|
||||
print "DONE!\n" unless $quiet;
|
||||
}
|
||||
|
||||
# -------------- DO NOT EDIT BELOW THIS LINE --------------------------------
|
||||
|
||||
#----------------------------------------------------------------------------
|
||||
# Add a package to the import node
|
||||
sub addPackage {
|
||||
my $session = shift;
|
||||
my $file = shift;
|
||||
|
||||
print "\tUpgrading package $file\n" unless $quiet;
|
||||
# Make a storage location for the package
|
||||
my $storage = WebGUI::Storage->createTemp( $session );
|
||||
$storage->addFileFromFilesystem( $file );
|
||||
|
||||
# Import the package into the import node
|
||||
my $package = eval {
|
||||
my $node = WebGUI::Asset->getImportNode($session);
|
||||
$node->importPackage( $storage, {
|
||||
overwriteLatest => 1,
|
||||
clearPackageFlag => 1,
|
||||
setDefaultTemplate => 1,
|
||||
} );
|
||||
};
|
||||
|
||||
if ($package eq 'corrupt') {
|
||||
die "Corrupt package found in $file. Stopping upgrade.\n";
|
||||
}
|
||||
if ($@ || !defined $package) {
|
||||
die "Error during package import on $file: $@\nStopping upgrade\n.";
|
||||
}
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
#-------------------------------------------------
|
||||
sub start {
|
||||
my $configFile;
|
||||
$|=1; #disable output buffering
|
||||
GetOptions(
|
||||
'configFile=s'=>\$configFile,
|
||||
'quiet'=>\$quiet
|
||||
);
|
||||
my $session = WebGUI::Session->open($webguiRoot,$configFile);
|
||||
$session->user({userId=>3});
|
||||
my $versionTag = WebGUI::VersionTag->getWorking($session);
|
||||
$versionTag->set({name=>"Upgrade to ".$toVersion});
|
||||
return $session;
|
||||
}
|
||||
|
||||
#-------------------------------------------------
|
||||
sub finish {
|
||||
my $session = shift;
|
||||
updateTemplates($session);
|
||||
my $versionTag = WebGUI::VersionTag->getWorking($session);
|
||||
$versionTag->commit;
|
||||
$session->db->write("insert into webguiVersion values (".$session->db->quote($toVersion).",'upgrade',".time().")");
|
||||
$session->close();
|
||||
}
|
||||
|
||||
#-------------------------------------------------
|
||||
sub updateTemplates {
|
||||
my $session = shift;
|
||||
return undef unless (-d "packages-".$toVersion);
|
||||
print "\tUpdating packages.\n" unless ($quiet);
|
||||
opendir(DIR,"packages-".$toVersion);
|
||||
my @files = readdir(DIR);
|
||||
closedir(DIR);
|
||||
my $newFolder = undef;
|
||||
foreach my $file (@files) {
|
||||
next unless ($file =~ /\.wgpkg$/);
|
||||
# Fix the filename to include a path
|
||||
$file = "packages-" . $toVersion . "/" . $file;
|
||||
addPackage( $session, $file );
|
||||
}
|
||||
}
|
||||
|
||||
#vim:ft=perl
|
||||
165
docs/upgrades/upgrade_7.10.12-7.10.13.pl
Normal file
165
docs/upgrades/upgrade_7.10.12-7.10.13.pl
Normal file
|
|
@ -0,0 +1,165 @@
|
|||
#!/usr/bin/env perl
|
||||
|
||||
#-------------------------------------------------------------------
|
||||
# WebGUI is Copyright 2001-2009 Plain Black Corporation.
|
||||
#-------------------------------------------------------------------
|
||||
# Please read the legal notices (docs/legal.txt) and the license
|
||||
# (docs/license.txt) that came with this distribution before using
|
||||
# this software.
|
||||
#-------------------------------------------------------------------
|
||||
# http://www.plainblack.com info@plainblack.com
|
||||
#-------------------------------------------------------------------
|
||||
|
||||
our ($webguiRoot);
|
||||
|
||||
BEGIN {
|
||||
$webguiRoot = "../..";
|
||||
unshift (@INC, $webguiRoot."/lib");
|
||||
}
|
||||
|
||||
use strict;
|
||||
use Getopt::Long;
|
||||
use WebGUI::Session;
|
||||
use WebGUI::Storage;
|
||||
use WebGUI::Asset;
|
||||
|
||||
|
||||
my $toVersion = '7.10.13';
|
||||
my $quiet; # this line required
|
||||
|
||||
|
||||
my $session = start(); # this line required
|
||||
|
||||
# upgrade functions go here
|
||||
addAutoPlayToCarousel( $session );
|
||||
addProcessorDropdownToSnippet( $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 AutoPlay fields to the Carousel
|
||||
sub addAutoPlayToCarousel {
|
||||
my $session = shift;
|
||||
print "\tAdding Auto Play to Carousel... " unless $quiet;
|
||||
$session->db->write(
|
||||
"ALTER TABLE Carousel ADD COLUMN autoPlay INT, ADD COLUMN autoPlayInterval INT"
|
||||
);
|
||||
print "DONE!\n" unless $quiet;
|
||||
}
|
||||
|
||||
#----------------------------------------------------------------------------
|
||||
sub addProcessorDropdownToSnippet {
|
||||
my $session = shift;
|
||||
my $db = $session->db;
|
||||
print "\tUpdating the Snippet table to add templateProcessor option..."
|
||||
unless $quiet;
|
||||
|
||||
my $rows = $db->buildArrayRefOfHashRefs(q{
|
||||
select assetId, revisionDate from snippet where processAsTemplate = 1
|
||||
});
|
||||
|
||||
$db->write(q{
|
||||
alter table snippet
|
||||
drop column processAsTemplate,
|
||||
add column templateParser char(255)
|
||||
});
|
||||
|
||||
my $default = $session->config->get('defaultTemplateParser');
|
||||
|
||||
for my $row (@$rows) {
|
||||
$db->write(q{
|
||||
update snippet
|
||||
set templateParser = ?
|
||||
where assetId = ? and revisionDate = ?
|
||||
}, [ $default, $row->{assetId}, $row->{revisionDate} ]);
|
||||
}
|
||||
|
||||
print "Done!\n";
|
||||
}
|
||||
|
||||
# -------------- DO NOT EDIT BELOW THIS LINE --------------------------------
|
||||
|
||||
#----------------------------------------------------------------------------
|
||||
# Add a package to the import node
|
||||
sub addPackage {
|
||||
my $session = shift;
|
||||
my $file = shift;
|
||||
|
||||
print "\tUpgrading package $file\n" unless $quiet;
|
||||
# Make a storage location for the package
|
||||
my $storage = WebGUI::Storage->createTemp( $session );
|
||||
$storage->addFileFromFilesystem( $file );
|
||||
|
||||
# Import the package into the import node
|
||||
my $package = eval {
|
||||
my $node = WebGUI::Asset->getImportNode($session);
|
||||
$node->importPackage( $storage, {
|
||||
overwriteLatest => 1,
|
||||
clearPackageFlag => 1,
|
||||
setDefaultTemplate => 1,
|
||||
} );
|
||||
};
|
||||
|
||||
if ($package eq 'corrupt') {
|
||||
die "Corrupt package found in $file. Stopping upgrade.\n";
|
||||
}
|
||||
if ($@ || !defined $package) {
|
||||
die "Error during package import on $file: $@\nStopping upgrade\n.";
|
||||
}
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
#-------------------------------------------------
|
||||
sub start {
|
||||
my $configFile;
|
||||
$|=1; #disable output buffering
|
||||
GetOptions(
|
||||
'configFile=s'=>\$configFile,
|
||||
'quiet'=>\$quiet
|
||||
);
|
||||
my $session = WebGUI::Session->open($webguiRoot,$configFile);
|
||||
$session->user({userId=>3});
|
||||
my $versionTag = WebGUI::VersionTag->getWorking($session);
|
||||
$versionTag->set({name=>"Upgrade to ".$toVersion});
|
||||
return $session;
|
||||
}
|
||||
|
||||
#-------------------------------------------------
|
||||
sub finish {
|
||||
my $session = shift;
|
||||
updateTemplates($session);
|
||||
my $versionTag = WebGUI::VersionTag->getWorking($session);
|
||||
$versionTag->commit;
|
||||
$session->db->write("insert into webguiVersion values (".$session->db->quote($toVersion).",'upgrade',".time().")");
|
||||
$session->close();
|
||||
}
|
||||
|
||||
#-------------------------------------------------
|
||||
sub updateTemplates {
|
||||
my $session = shift;
|
||||
return undef unless (-d "packages-".$toVersion);
|
||||
print "\tUpdating packages.\n" unless ($quiet);
|
||||
opendir(DIR,"packages-".$toVersion);
|
||||
my @files = readdir(DIR);
|
||||
closedir(DIR);
|
||||
my $newFolder = undef;
|
||||
foreach my $file (@files) {
|
||||
next unless ($file =~ /\.wgpkg$/);
|
||||
# Fix the filename to include a path
|
||||
$file = "packages-" . $toVersion . "/" . $file;
|
||||
addPackage( $session, $file );
|
||||
}
|
||||
}
|
||||
|
||||
#vim:ft=perl
|
||||
191
docs/upgrades/upgrade_7.10.13-7.10.14.pl
Normal file
191
docs/upgrades/upgrade_7.10.13-7.10.14.pl
Normal file
|
|
@ -0,0 +1,191 @@
|
|||
#!/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;
|
||||
|
||||
|
||||
my $toVersion = '7.10.14';
|
||||
my $quiet; # this line required
|
||||
|
||||
|
||||
my $session = start(); # this line required
|
||||
|
||||
# upgrade functions go here
|
||||
addOrganizationsToTransaction($session);
|
||||
removeDuplicateUndergroundStyleTemplates($session);
|
||||
addRichEditToCarousel($session);
|
||||
fixBadCalendarFeedStatus($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 fixBadCalendarFeedStatus {
|
||||
my $session = shift;
|
||||
print "\tFix the name of the iCal status field in all Calendar assets... " unless $quiet;
|
||||
# and here's our code
|
||||
my $fetch_calendar = WebGUI::Asset::Wobject::Calendar->getIsa($session);
|
||||
my $sth = $session->db->read('select assetId, revisionDate from Calendar');
|
||||
CALENDAR: while (my ($assetId, $revisionDate) = $sth->array) {
|
||||
my $calendar = eval {WebGUI::Asset->new($session, $assetId, 'WebGUI::Asset::Wobject::Calendar', $revisionDate)};
|
||||
next CALENDAR if !$calendar;
|
||||
FEED: foreach my $feed ( @{ $calendar->getFeeds } ) {
|
||||
my $status = delete $feed->{status};
|
||||
if (!exists $feed->{lastResult}) {
|
||||
$feed->{lastResult} = $status;
|
||||
}
|
||||
if (!exists $feed->{lastUpdated}) {
|
||||
$feed->{lastUpdated} = 'never';
|
||||
}
|
||||
$calendar->setFeed($feed->{feedId}, $feed);
|
||||
}
|
||||
}
|
||||
$sth->finish;
|
||||
print "DONE!\n" unless $quiet;
|
||||
}
|
||||
|
||||
#----------------------------------------------------------------------------
|
||||
# Describe what our function does
|
||||
sub addOrganizationsToTransaction {
|
||||
my $session = shift;
|
||||
print "\tAdd organization fields to the addresses stored in the Transaction and TransactionItem... " unless $quiet;
|
||||
# and here's our code
|
||||
$session->db->write('ALTER TABLE transaction ADD COLUMN shippingOrganization CHAR(35)');
|
||||
$session->db->write('ALTER TABLE transaction ADD COLUMN paymentOrganization CHAR(35)');
|
||||
$session->db->write('ALTER TABLE transactionItem ADD COLUMN shippingOrganization CHAR(35)');
|
||||
print "DONE!\n" unless $quiet;
|
||||
}
|
||||
|
||||
#----------------------------------------------------------------------------
|
||||
# Describe what our function does
|
||||
sub removeDuplicateUndergroundStyleTemplates {
|
||||
my $session = shift;
|
||||
print "\tRemove duplicate Underground Style templatess that were mistakenly added during the 7.10.13 upgrade... " unless $quiet;
|
||||
# and here's our code
|
||||
ASSETID: foreach my $assetId(qw/IeFioyemW2Ov-hFGFwD75A niYg8Da1sULTQnevZ8wYpw/) {
|
||||
my $asset = WebGUI::Asset->newByDynamicClass($session, $assetId);
|
||||
next ASSETID unless $asset;
|
||||
$asset->purge; ##Kill it, crush it, grind its bits into dust.
|
||||
}
|
||||
print "DONE!\n" unless $quiet;
|
||||
}
|
||||
|
||||
#----------------------------------------------------------------------------
|
||||
# Describe what our function does
|
||||
sub addRichEditToCarousel {
|
||||
my $session = shift;
|
||||
print "\tAdd RichEdit option to the Carousel... " unless $quiet;
|
||||
# and here's our code
|
||||
$session->db->write('ALTER TABLE Carousel ADD COLUMN richEditor CHAR(22) BINARY');
|
||||
$session->db->write(q!update Carousel set richEditor='PBrichedit000000000001'!);
|
||||
print "DONE!\n" unless $quiet;
|
||||
}
|
||||
|
||||
# -------------- DO NOT EDIT BELOW THIS LINE --------------------------------
|
||||
|
||||
#----------------------------------------------------------------------------
|
||||
# Add a package to the import node
|
||||
sub addPackage {
|
||||
my $session = shift;
|
||||
my $file = shift;
|
||||
|
||||
print "\tUpgrading package $file\n" unless $quiet;
|
||||
# Make a storage location for the package
|
||||
my $storage = WebGUI::Storage->createTemp( $session );
|
||||
$storage->addFileFromFilesystem( $file );
|
||||
|
||||
# Import the package into the import node
|
||||
my $package = eval {
|
||||
my $node = WebGUI::Asset->getImportNode($session);
|
||||
$node->importPackage( $storage, {
|
||||
overwriteLatest => 1,
|
||||
clearPackageFlag => 1,
|
||||
setDefaultTemplate => 1,
|
||||
} );
|
||||
};
|
||||
|
||||
if ($package eq 'corrupt') {
|
||||
die "Corrupt package found in $file. Stopping upgrade.\n";
|
||||
}
|
||||
if ($@ || !defined $package) {
|
||||
die "Error during package import on $file: $@\nStopping upgrade\n.";
|
||||
}
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
#-------------------------------------------------
|
||||
sub start {
|
||||
my $configFile;
|
||||
$|=1; #disable output buffering
|
||||
GetOptions(
|
||||
'configFile=s'=>\$configFile,
|
||||
'quiet'=>\$quiet
|
||||
);
|
||||
my $session = WebGUI::Session->open($webguiRoot,$configFile);
|
||||
$session->user({userId=>3});
|
||||
my $versionTag = WebGUI::VersionTag->getWorking($session);
|
||||
$versionTag->set({name=>"Upgrade to ".$toVersion});
|
||||
return $session;
|
||||
}
|
||||
|
||||
#-------------------------------------------------
|
||||
sub finish {
|
||||
my $session = shift;
|
||||
updateTemplates($session);
|
||||
my $versionTag = WebGUI::VersionTag->getWorking($session);
|
||||
$versionTag->commit;
|
||||
$session->db->write("insert into webguiVersion values (".$session->db->quote($toVersion).",'upgrade',".time().")");
|
||||
$session->close();
|
||||
}
|
||||
|
||||
#-------------------------------------------------
|
||||
sub updateTemplates {
|
||||
my $session = shift;
|
||||
return undef unless (-d "packages-".$toVersion);
|
||||
print "\tUpdating packages.\n" unless ($quiet);
|
||||
opendir(DIR,"packages-".$toVersion);
|
||||
my @files = readdir(DIR);
|
||||
closedir(DIR);
|
||||
my $newFolder = undef;
|
||||
foreach my $file (@files) {
|
||||
next unless ($file =~ /\.wgpkg$/);
|
||||
# Fix the filename to include a path
|
||||
$file = "packages-" . $toVersion . "/" . $file;
|
||||
addPackage( $session, $file );
|
||||
}
|
||||
}
|
||||
|
||||
#vim:ft=perl
|
||||
160
docs/upgrades/upgrade_7.10.14-7.10.15.pl
Normal file
160
docs/upgrades/upgrade_7.10.14-7.10.15.pl
Normal file
|
|
@ -0,0 +1,160 @@
|
|||
#!/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::AssetAspect::Installable;
|
||||
use WebGUI::Asset::MapPoint;
|
||||
use WebGUI::Asset::Wobject::Thingy;
|
||||
|
||||
my $toVersion = '7.10.15';
|
||||
my $quiet; # this line required
|
||||
|
||||
|
||||
my $session = start(); # this line required
|
||||
|
||||
# upgrade functions go here
|
||||
alterAssetIndexTable($session);
|
||||
reindexAllThingys($session);
|
||||
WebGUI::AssetAspect::Installable::upgrade("WebGUI::Asset::MapPoint",$session);
|
||||
addRenderThingDataMacro($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 addRenderThingDataMacro {
|
||||
my $session = shift;
|
||||
print "\tAdd the new RenderThingData macro to the site config... " unless $quiet;
|
||||
$session->config->addToHash('macros', 'RenderThingData', 'RenderThingData');
|
||||
print "DONE!\n" unless $quiet;
|
||||
}
|
||||
|
||||
sub alterAssetIndexTable {
|
||||
my $session = shift;
|
||||
print "\tExtend the assetIndex table so we can search things other than assets... " unless $quiet;
|
||||
$session->db->write(<<EOSQL);
|
||||
alter table assetIndex
|
||||
drop primary key,
|
||||
add column subId char(255) CHARACTER SET utf8 COLLATE utf8_bin DEFAULT NULL,
|
||||
add primary key (assetId, url)
|
||||
EOSQL
|
||||
print "DONE!\n" unless $quiet;
|
||||
}
|
||||
|
||||
sub reindexAllThingys {
|
||||
my $session = shift;
|
||||
print "\tReindex all Thingys... " unless $quiet;
|
||||
my $get_thingy = WebGUI::Asset::Wobject::Thingy->getIsa($session);
|
||||
THINGY: while (1) {
|
||||
my $thingy = eval { $get_thingy->() };
|
||||
next THINGY if Exception::Class->caught();
|
||||
last THINGY unless $thingy;
|
||||
$thingy->indexContent;
|
||||
}
|
||||
print "DONE!\n" unless $quiet;
|
||||
}
|
||||
|
||||
# -------------- DO NOT EDIT BELOW THIS LINE --------------------------------
|
||||
|
||||
#----------------------------------------------------------------------------
|
||||
# Add a package to the import node
|
||||
sub addPackage {
|
||||
my $session = shift;
|
||||
my $file = shift;
|
||||
|
||||
print "\tUpgrading package $file\n" unless $quiet;
|
||||
# Make a storage location for the package
|
||||
my $storage = WebGUI::Storage->createTemp( $session );
|
||||
$storage->addFileFromFilesystem( $file );
|
||||
|
||||
# Import the package into the import node
|
||||
my $package = eval {
|
||||
my $node = WebGUI::Asset->getImportNode($session);
|
||||
$node->importPackage( $storage, {
|
||||
overwriteLatest => 1,
|
||||
clearPackageFlag => 1,
|
||||
setDefaultTemplate => 1,
|
||||
} );
|
||||
};
|
||||
|
||||
if ($package eq 'corrupt') {
|
||||
die "Corrupt package found in $file. Stopping upgrade.\n";
|
||||
}
|
||||
if ($@ || !defined $package) {
|
||||
die "Error during package import on $file: $@\nStopping upgrade\n.";
|
||||
}
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
#-------------------------------------------------
|
||||
sub start {
|
||||
my $configFile;
|
||||
$|=1; #disable output buffering
|
||||
GetOptions(
|
||||
'configFile=s'=>\$configFile,
|
||||
'quiet'=>\$quiet
|
||||
);
|
||||
my $session = WebGUI::Session->open($webguiRoot,$configFile);
|
||||
$session->user({userId=>3});
|
||||
my $versionTag = WebGUI::VersionTag->getWorking($session);
|
||||
$versionTag->set({name=>"Upgrade to ".$toVersion});
|
||||
return $session;
|
||||
}
|
||||
|
||||
#-------------------------------------------------
|
||||
sub finish {
|
||||
my $session = shift;
|
||||
updateTemplates($session);
|
||||
my $versionTag = WebGUI::VersionTag->getWorking($session);
|
||||
$versionTag->commit;
|
||||
$session->db->write("insert into webguiVersion values (".$session->db->quote($toVersion).",'upgrade',".time().")");
|
||||
$session->close();
|
||||
}
|
||||
|
||||
#-------------------------------------------------
|
||||
sub updateTemplates {
|
||||
my $session = shift;
|
||||
return undef unless (-d "packages-".$toVersion);
|
||||
print "\tUpdating packages.\n" unless ($quiet);
|
||||
opendir(DIR,"packages-".$toVersion);
|
||||
my @files = readdir(DIR);
|
||||
closedir(DIR);
|
||||
my $newFolder = undef;
|
||||
foreach my $file (@files) {
|
||||
next unless ($file =~ /\.wgpkg$/);
|
||||
# Fix the filename to include a path
|
||||
$file = "packages-" . $toVersion . "/" . $file;
|
||||
addPackage( $session, $file );
|
||||
}
|
||||
}
|
||||
|
||||
#vim:ft=perl
|
||||
135
docs/upgrades/upgrade_7.10.15-7.10.16.pl
Normal file
135
docs/upgrades/upgrade_7.10.15-7.10.16.pl
Normal file
|
|
@ -0,0 +1,135 @@
|
|||
#!/usr/bin/env perl
|
||||
|
||||
#-------------------------------------------------------------------
|
||||
# WebGUI is Copyright 2001-2009 Plain Black Corporation.
|
||||
#-------------------------------------------------------------------
|
||||
# Please read the legal notices (docs/legal.txt) and the license
|
||||
# (docs/license.txt) that came with this distribution before using
|
||||
# this software.
|
||||
#-------------------------------------------------------------------
|
||||
# http://www.plainblack.com info@plainblack.com
|
||||
#-------------------------------------------------------------------
|
||||
|
||||
our ($webguiRoot);
|
||||
|
||||
BEGIN {
|
||||
$webguiRoot = "../..";
|
||||
unshift (@INC, $webguiRoot."/lib");
|
||||
}
|
||||
|
||||
use strict;
|
||||
use Getopt::Long;
|
||||
use WebGUI::Session;
|
||||
use WebGUI::Storage;
|
||||
use WebGUI::Asset;
|
||||
|
||||
|
||||
my $toVersion = '7.10.16';
|
||||
my $quiet; # this line required
|
||||
|
||||
|
||||
my $session = start(); # this line required
|
||||
|
||||
# upgrade functions go here
|
||||
addAssetPropertyMacro($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 addAssetPropertyMacro {
|
||||
my $session = shift;
|
||||
my $c = $session->config;
|
||||
my $hash = $c->get('macros');
|
||||
unless (grep { $_ eq 'AssetProperty' } values %$hash) {
|
||||
print "\tAdding AssetProperty macro... " unless $quiet;
|
||||
$c->set('macros/AssetProperty' => 'AssetProperty');
|
||||
print "DONE!\n" unless $quiet;
|
||||
}
|
||||
}
|
||||
|
||||
# -------------- DO NOT EDIT BELOW THIS LINE --------------------------------
|
||||
|
||||
#----------------------------------------------------------------------------
|
||||
# Add a package to the import node
|
||||
sub addPackage {
|
||||
my $session = shift;
|
||||
my $file = shift;
|
||||
|
||||
print "\tUpgrading package $file\n" unless $quiet;
|
||||
# Make a storage location for the package
|
||||
my $storage = WebGUI::Storage->createTemp( $session );
|
||||
$storage->addFileFromFilesystem( $file );
|
||||
|
||||
# Import the package into the import node
|
||||
my $package = eval {
|
||||
my $node = WebGUI::Asset->getImportNode($session);
|
||||
$node->importPackage( $storage, {
|
||||
overwriteLatest => 1,
|
||||
clearPackageFlag => 1,
|
||||
setDefaultTemplate => 1,
|
||||
} );
|
||||
};
|
||||
|
||||
if ($package eq 'corrupt') {
|
||||
die "Corrupt package found in $file. Stopping upgrade.\n";
|
||||
}
|
||||
if ($@ || !defined $package) {
|
||||
die "Error during package import on $file: $@\nStopping upgrade\n.";
|
||||
}
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
#-------------------------------------------------
|
||||
sub start {
|
||||
my $configFile;
|
||||
$|=1; #disable output buffering
|
||||
GetOptions(
|
||||
'configFile=s'=>\$configFile,
|
||||
'quiet'=>\$quiet
|
||||
);
|
||||
my $session = WebGUI::Session->open($webguiRoot,$configFile);
|
||||
$session->user({userId=>3});
|
||||
my $versionTag = WebGUI::VersionTag->getWorking($session);
|
||||
$versionTag->set({name=>"Upgrade to ".$toVersion});
|
||||
return $session;
|
||||
}
|
||||
|
||||
#-------------------------------------------------
|
||||
sub finish {
|
||||
my $session = shift;
|
||||
updateTemplates($session);
|
||||
my $versionTag = WebGUI::VersionTag->getWorking($session);
|
||||
$versionTag->commit;
|
||||
$session->db->write("insert into webguiVersion values (".$session->db->quote($toVersion).",'upgrade',".time().")");
|
||||
$session->close();
|
||||
}
|
||||
|
||||
#-------------------------------------------------
|
||||
sub updateTemplates {
|
||||
my $session = shift;
|
||||
return undef unless (-d "packages-".$toVersion);
|
||||
print "\tUpdating packages.\n" unless ($quiet);
|
||||
opendir(DIR,"packages-".$toVersion);
|
||||
my @files = readdir(DIR);
|
||||
closedir(DIR);
|
||||
my $newFolder = undef;
|
||||
foreach my $file (@files) {
|
||||
next unless ($file =~ /\.wgpkg$/);
|
||||
# Fix the filename to include a path
|
||||
$file = "packages-" . $toVersion . "/" . $file;
|
||||
addPackage( $session, $file );
|
||||
}
|
||||
}
|
||||
|
||||
#vim:ft=perl
|
||||
139
docs/upgrades/upgrade_7.10.16-7.10.17.pl
Normal file
139
docs/upgrades/upgrade_7.10.16-7.10.17.pl
Normal file
|
|
@ -0,0 +1,139 @@
|
|||
#!/usr/bin/env perl
|
||||
|
||||
#-------------------------------------------------------------------
|
||||
# WebGUI is Copyright 2001-2009 Plain Black Corporation.
|
||||
#-------------------------------------------------------------------
|
||||
# Please read the legal notices (docs/legal.txt) and the license
|
||||
# (docs/license.txt) that came with this distribution before using
|
||||
# this software.
|
||||
#-------------------------------------------------------------------
|
||||
# http://www.plainblack.com info@plainblack.com
|
||||
#-------------------------------------------------------------------
|
||||
|
||||
our ($webguiRoot);
|
||||
|
||||
BEGIN {
|
||||
$webguiRoot = "../..";
|
||||
unshift (@INC, $webguiRoot."/lib");
|
||||
}
|
||||
|
||||
use strict;
|
||||
use Getopt::Long;
|
||||
use WebGUI::Session;
|
||||
use WebGUI::Storage;
|
||||
use WebGUI::Asset;
|
||||
|
||||
|
||||
my $toVersion = '7.10.17';
|
||||
my $quiet; # this line required
|
||||
|
||||
|
||||
my $session = start(); # this line required
|
||||
|
||||
# upgrade functions go here
|
||||
createThingyDBColumns($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;
|
||||
#}
|
||||
|
||||
#----------------------------------------------------------------------------
|
||||
# Creates new column in tables for Thingy_fields and Thingy_things
|
||||
sub createThingyDBColumns {
|
||||
my $session = shift;
|
||||
print "\tAdding db. columns Thingy_fields.isUnique and Thingy_things.maxEntriesTotal.." unless $quiet;
|
||||
# and here's our code
|
||||
|
||||
my %tfHash = $session->db->quickHash("show columns from Thingy_fields where Field='isUnique'");
|
||||
my %ttHash = $session->db->quickHash("show columns from Thingy_things where Field='maxEntriesTotal'");
|
||||
|
||||
unless ( $tfHash{'Field'}) { $session->db->write("alter table Thingy_fields add isUnique int(1) default 0"); }
|
||||
unless ( $ttHash{'Field'}) { $session->db->write("alter table Thingy_things add maxEntriesTotal int default 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;
|
||||
|
||||
print "\tUpgrading package $file\n" unless $quiet;
|
||||
# Make a storage location for the package
|
||||
my $storage = WebGUI::Storage->createTemp( $session );
|
||||
$storage->addFileFromFilesystem( $file );
|
||||
|
||||
# Import the package into the import node
|
||||
my $package = eval {
|
||||
my $node = WebGUI::Asset->getImportNode($session);
|
||||
$node->importPackage( $storage, {
|
||||
overwriteLatest => 1,
|
||||
clearPackageFlag => 1,
|
||||
setDefaultTemplate => 1,
|
||||
} );
|
||||
};
|
||||
|
||||
if ($package eq 'corrupt') {
|
||||
die "Corrupt package found in $file. Stopping upgrade.\n";
|
||||
}
|
||||
if ($@ || !defined $package) {
|
||||
die "Error during package import on $file: $@\nStopping upgrade\n.";
|
||||
}
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
#-------------------------------------------------
|
||||
sub start {
|
||||
my $configFile;
|
||||
$|=1; #disable output buffering
|
||||
GetOptions(
|
||||
'configFile=s'=>\$configFile,
|
||||
'quiet'=>\$quiet
|
||||
);
|
||||
my $session = WebGUI::Session->open($webguiRoot,$configFile);
|
||||
$session->user({userId=>3});
|
||||
my $versionTag = WebGUI::VersionTag->getWorking($session);
|
||||
$versionTag->set({name=>"Upgrade to ".$toVersion});
|
||||
return $session;
|
||||
}
|
||||
|
||||
#-------------------------------------------------
|
||||
sub finish {
|
||||
my $session = shift;
|
||||
updateTemplates($session);
|
||||
my $versionTag = WebGUI::VersionTag->getWorking($session);
|
||||
$versionTag->commit;
|
||||
$session->db->write("insert into webguiVersion values (".$session->db->quote($toVersion).",'upgrade',".time().")");
|
||||
$session->close();
|
||||
}
|
||||
|
||||
#-------------------------------------------------
|
||||
sub updateTemplates {
|
||||
my $session = shift;
|
||||
return undef unless (-d "packages-".$toVersion);
|
||||
print "\tUpdating packages.\n" unless ($quiet);
|
||||
opendir(DIR,"packages-".$toVersion);
|
||||
my @files = readdir(DIR);
|
||||
closedir(DIR);
|
||||
my $newFolder = undef;
|
||||
foreach my $file (@files) {
|
||||
next unless ($file =~ /\.wgpkg$/);
|
||||
# Fix the filename to include a path
|
||||
$file = "packages-" . $toVersion . "/" . $file;
|
||||
addPackage( $session, $file );
|
||||
}
|
||||
}
|
||||
|
||||
#vim:ft=perl
|
||||
172
docs/upgrades/upgrade_7.10.17-7.10.18.pl
Normal file
172
docs/upgrades/upgrade_7.10.17-7.10.18.pl
Normal file
|
|
@ -0,0 +1,172 @@
|
|||
#!/usr/bin/env perl
|
||||
|
||||
#-------------------------------------------------------------------
|
||||
# WebGUI is Copyright 2001-2009 Plain Black Corporation.
|
||||
#-------------------------------------------------------------------
|
||||
# Please read the legal notices (docs/legal.txt) and the license
|
||||
# (docs/license.txt) that came with this distribution before using
|
||||
# this software.
|
||||
#-------------------------------------------------------------------
|
||||
# http://www.plainblack.com info@plainblack.com
|
||||
#-------------------------------------------------------------------
|
||||
|
||||
our ($webguiRoot);
|
||||
|
||||
BEGIN {
|
||||
$webguiRoot = "../..";
|
||||
unshift (@INC, $webguiRoot."/lib");
|
||||
}
|
||||
|
||||
use strict;
|
||||
use Getopt::Long;
|
||||
use WebGUI::Session;
|
||||
use WebGUI::Storage;
|
||||
use WebGUI::Asset;
|
||||
|
||||
|
||||
my $toVersion = '7.10.18';
|
||||
my $quiet; # this line required
|
||||
|
||||
|
||||
my $session = start(); # this line required
|
||||
|
||||
# upgrade functions go here
|
||||
addAssetManagerSortPreferences($session);
|
||||
|
||||
finish($session); # this line required
|
||||
|
||||
|
||||
#----------------------------------------------------------------------------
|
||||
sub addAssetManagerSortPreferences {
|
||||
my $cn = 'assetManagerSortColumn';
|
||||
my $on = 'assetManagerSortDirection';
|
||||
unless (WebGUI::ProfileField->new($session, $cn)) {
|
||||
print 'Adding Asset Manager Sort Column profile field...'
|
||||
unless $quiet;
|
||||
|
||||
WebGUI::ProfileField->create($session, $cn => {
|
||||
label =>
|
||||
"WebGUI::International::get('$cn label', 'Account_Profile')",
|
||||
protected => 1,
|
||||
fieldType => 'selectBox',
|
||||
dataDefault => 'lineage',
|
||||
possibleValues => <<'VALUES',
|
||||
{
|
||||
lineage => WebGUI::International::get('rank', 'Asset'),
|
||||
title => WebGUI::International::get(99, 'Asset'),
|
||||
className => WebGUI::International::get('type', 'Asset'),
|
||||
revisionDate => WebGUI::International::get('revision date', 'Asset'),
|
||||
assetSize => WebGUI::International::get('size', 'Asset'),
|
||||
lockedBy => WebGUI::International::get('locked', 'Asset'),
|
||||
}
|
||||
VALUES
|
||||
}, 4);
|
||||
print "Done!\n" unless $quiet;
|
||||
}
|
||||
unless (WebGUI::ProfileField->new($session, $on)) {
|
||||
print 'Adding Asset Manager Sort Direction profile field...'
|
||||
unless $quiet;
|
||||
|
||||
WebGUI::ProfileField->create($session, $on => {
|
||||
label =>
|
||||
"WebGUI::International::get('$on label', 'Account_Profile')",
|
||||
protected => 1,
|
||||
fieldType => 'selectBox',
|
||||
dataDefault => 'asc',
|
||||
possibleValues => <<'VALUES',
|
||||
{
|
||||
asc => WebGUI::International::get('ascending', 'Account_Profile'),
|
||||
desc => WebGUI::International::get('descending', 'Account_Profile'),
|
||||
}
|
||||
VALUES
|
||||
}, 4);
|
||||
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;
|
||||
|
||||
print "\tUpgrading package $file\n" unless $quiet;
|
||||
# Make a storage location for the package
|
||||
my $storage = WebGUI::Storage->createTemp( $session );
|
||||
$storage->addFileFromFilesystem( $file );
|
||||
|
||||
# Import the package into the import node
|
||||
my $package = eval {
|
||||
my $node = WebGUI::Asset->getImportNode($session);
|
||||
$node->importPackage( $storage, {
|
||||
overwriteLatest => 1,
|
||||
clearPackageFlag => 1,
|
||||
setDefaultTemplate => 1,
|
||||
} );
|
||||
};
|
||||
|
||||
if ($package eq 'corrupt') {
|
||||
die "Corrupt package found in $file. Stopping upgrade.\n";
|
||||
}
|
||||
if ($@ || !defined $package) {
|
||||
die "Error during package import on $file: $@\nStopping upgrade\n.";
|
||||
}
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
#-------------------------------------------------
|
||||
sub start {
|
||||
my $configFile;
|
||||
$|=1; #disable output buffering
|
||||
GetOptions(
|
||||
'configFile=s'=>\$configFile,
|
||||
'quiet'=>\$quiet
|
||||
);
|
||||
my $session = WebGUI::Session->open($webguiRoot,$configFile);
|
||||
$session->user({userId=>3});
|
||||
my $versionTag = WebGUI::VersionTag->getWorking($session);
|
||||
$versionTag->set({name=>"Upgrade to ".$toVersion});
|
||||
return $session;
|
||||
}
|
||||
|
||||
#-------------------------------------------------
|
||||
sub finish {
|
||||
my $session = shift;
|
||||
updateTemplates($session);
|
||||
my $versionTag = WebGUI::VersionTag->getWorking($session);
|
||||
$versionTag->commit;
|
||||
$session->db->write("insert into webguiVersion values (".$session->db->quote($toVersion).",'upgrade',".time().")");
|
||||
$session->close();
|
||||
}
|
||||
|
||||
#-------------------------------------------------
|
||||
sub updateTemplates {
|
||||
my $session = shift;
|
||||
return undef unless (-d "packages-".$toVersion);
|
||||
print "\tUpdating packages.\n" unless ($quiet);
|
||||
opendir(DIR,"packages-".$toVersion);
|
||||
my @files = readdir(DIR);
|
||||
closedir(DIR);
|
||||
my $newFolder = undef;
|
||||
foreach my $file (@files) {
|
||||
next unless ($file =~ /\.wgpkg$/);
|
||||
# Fix the filename to include a path
|
||||
$file = "packages-" . $toVersion . "/" . $file;
|
||||
addPackage( $session, $file );
|
||||
}
|
||||
}
|
||||
|
||||
#vim:ft=perl
|
||||
177
docs/upgrades/upgrade_7.10.18-7.10.19.pl
Normal file
177
docs/upgrades/upgrade_7.10.18-7.10.19.pl
Normal file
|
|
@ -0,0 +1,177 @@
|
|||
#!/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 Exception::Class;
|
||||
|
||||
|
||||
my $toVersion = '7.10.19';
|
||||
my $quiet; # this line required
|
||||
|
||||
|
||||
my $session = start(); # this line required
|
||||
|
||||
# upgrade functions go here
|
||||
addTicketLimitToBadgeGroup( $session );
|
||||
fixBrokenCalendarFeedUrls ( $session );
|
||||
removeUndergroundUserStyleTemplate ( $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;
|
||||
#}
|
||||
|
||||
|
||||
# Fix calendar feed urls that had adminId attached to them until they blew up
|
||||
sub fixBrokenCalendarFeedUrls {
|
||||
my $session = shift;
|
||||
print "\tChecking all calendar feed URLs for adminId brokenness... " unless $quiet;
|
||||
my $getCalendar = WebGUI::Asset::Wobject::Calendar->getIsa($session);
|
||||
CALENDAR: while (1) {
|
||||
my $calendar = eval { $getCalendar->(); };
|
||||
next CALENDAR if Exception::Class->caught;
|
||||
last CALENDAR unless $calendar;
|
||||
FEED: foreach my $feed (@{ $calendar->getFeeds }) {
|
||||
$feed->{url} =~ s/adminId=[^;]{22};?//g;
|
||||
$feed->{url} =~ s/\?$//;
|
||||
$calendar->setFeed($feed->{feedId}, $feed);
|
||||
}
|
||||
}
|
||||
print "DONE!\n" unless $quiet;
|
||||
}
|
||||
|
||||
#----------------------------------------------------------------------------
|
||||
# Add a ticket limit to badges in a badge group
|
||||
sub removeUndergroundUserStyleTemplate {
|
||||
my $session = shift;
|
||||
print "\tRemove Underground User Style template... " unless $quiet;
|
||||
if ($session->setting->get('userFunctionStyleId') eq 'zfDnOJgeiybz9vnmoEXRXA') {
|
||||
$session->setting->set('userFunctionStyleId', 'Qk24uXao2yowR6zxbVJ0xA');
|
||||
}
|
||||
my $underground_user = WebGUI::Asset->newByDynamicClass($session, 'zfDnOJgeiybz9vnmoEXRXA');
|
||||
if ($underground_user) {
|
||||
$underground_user->purge;
|
||||
}
|
||||
print "DONE!\n" unless $quiet;
|
||||
}
|
||||
|
||||
#----------------------------------------------------------------------------
|
||||
# Add a ticket limit to badges in a badge group
|
||||
sub addTicketLimitToBadgeGroup {
|
||||
my $session = shift;
|
||||
print "\tAdd ticket limit to badge groups... " unless $quiet;
|
||||
# Make sure it hasn't been done already...
|
||||
my $columns = $session->db->buildHashRef('describe EMSBadgeGroup');
|
||||
use List::MoreUtils qw(any);
|
||||
if(!any { $_ eq 'ticketsPerBadge' } keys %{$columns}) {
|
||||
$session->db->write(q{
|
||||
ALTER TABLE EMSBadgeGroup ADD COLUMN `ticketsPerBadge` INTEGER
|
||||
});
|
||||
}
|
||||
print "DONE!\n" unless $quiet;
|
||||
}
|
||||
|
||||
# -------------- DO NOT EDIT BELOW THIS LINE --------------------------------
|
||||
|
||||
#----------------------------------------------------------------------------
|
||||
# Add a package to the import node
|
||||
sub addPackage {
|
||||
my $session = shift;
|
||||
my $file = shift;
|
||||
|
||||
print "\tUpgrading package $file\n" unless $quiet;
|
||||
# Make a storage location for the package
|
||||
my $storage = WebGUI::Storage->createTemp( $session );
|
||||
$storage->addFileFromFilesystem( $file );
|
||||
|
||||
# Import the package into the import node
|
||||
my $package = eval {
|
||||
my $node = WebGUI::Asset->getImportNode($session);
|
||||
$node->importPackage( $storage, {
|
||||
overwriteLatest => 1,
|
||||
clearPackageFlag => 1,
|
||||
setDefaultTemplate => 1,
|
||||
} );
|
||||
};
|
||||
|
||||
if ($package eq 'corrupt') {
|
||||
die "Corrupt package found in $file. Stopping upgrade.\n";
|
||||
}
|
||||
if ($@ || !defined $package) {
|
||||
die "Error during package import on $file: $@\nStopping upgrade\n.";
|
||||
}
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
#-------------------------------------------------
|
||||
sub start {
|
||||
my $configFile;
|
||||
$|=1; #disable output buffering
|
||||
GetOptions(
|
||||
'configFile=s'=>\$configFile,
|
||||
'quiet'=>\$quiet
|
||||
);
|
||||
my $session = WebGUI::Session->open($webguiRoot,$configFile);
|
||||
$session->user({userId=>3});
|
||||
my $versionTag = WebGUI::VersionTag->getWorking($session);
|
||||
$versionTag->set({name=>"Upgrade to ".$toVersion});
|
||||
return $session;
|
||||
}
|
||||
|
||||
#-------------------------------------------------
|
||||
sub finish {
|
||||
my $session = shift;
|
||||
updateTemplates($session);
|
||||
my $versionTag = WebGUI::VersionTag->getWorking($session);
|
||||
$versionTag->commit;
|
||||
$session->db->write("insert into webguiVersion values (".$session->db->quote($toVersion).",'upgrade',".time().")");
|
||||
$session->close();
|
||||
}
|
||||
|
||||
#-------------------------------------------------
|
||||
sub updateTemplates {
|
||||
my $session = shift;
|
||||
return undef unless (-d "packages-".$toVersion);
|
||||
print "\tUpdating packages.\n" unless ($quiet);
|
||||
opendir(DIR,"packages-".$toVersion);
|
||||
my @files = readdir(DIR);
|
||||
closedir(DIR);
|
||||
my $newFolder = undef;
|
||||
foreach my $file (@files) {
|
||||
next unless ($file =~ /\.wgpkg$/);
|
||||
# Fix the filename to include a path
|
||||
$file = "packages-" . $toVersion . "/" . $file;
|
||||
addPackage( $session, $file );
|
||||
}
|
||||
}
|
||||
|
||||
#vim:ft=perl
|
||||
147
docs/upgrades/upgrade_7.10.19-7.10.20.pl
Normal file
147
docs/upgrades/upgrade_7.10.19-7.10.20.pl
Normal file
|
|
@ -0,0 +1,147 @@
|
|||
#!/usr/bin/env perl
|
||||
|
||||
#-------------------------------------------------------------------
|
||||
# WebGUI is Copyright 2001-2009 Plain Black Corporation.
|
||||
#-------------------------------------------------------------------
|
||||
# Please read the legal notices (docs/legal.txt) and the license
|
||||
# (docs/license.txt) that came with this distribution before using
|
||||
# this software.
|
||||
#-------------------------------------------------------------------
|
||||
# http://www.plainblack.com info@plainblack.com
|
||||
#-------------------------------------------------------------------
|
||||
|
||||
our ($webguiRoot);
|
||||
|
||||
BEGIN {
|
||||
$webguiRoot = "../..";
|
||||
unshift (@INC, $webguiRoot."/lib");
|
||||
}
|
||||
|
||||
use strict;
|
||||
use Getopt::Long;
|
||||
use WebGUI::Session;
|
||||
use WebGUI::Storage;
|
||||
use WebGUI::Asset;
|
||||
|
||||
|
||||
my $toVersion = '7.10.20';
|
||||
my $quiet; # this line required
|
||||
|
||||
my $session = start(); # this line required
|
||||
|
||||
addFormFieldMacroToConfig();
|
||||
|
||||
# upgrade functions go here
|
||||
fixSpacesInTaxInfo ( $session );
|
||||
|
||||
sub addFormFieldMacroToConfig {
|
||||
print "\tAdd FormField macro to config... " unless $quiet;
|
||||
$session->config->addToHash( 'macros', FormField => 'FormField' );
|
||||
print "DONE!\n" unless $quiet;
|
||||
}
|
||||
|
||||
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;
|
||||
#}
|
||||
|
||||
#----------------------------------------------------------------------------
|
||||
# Fix calendar feed urls that had adminId attached to them until they blew up
|
||||
sub fixSpacesInTaxInfo {
|
||||
my $session = shift;
|
||||
print "\tRemoving spaces around commas in generic tax rate information... " unless $quiet;
|
||||
use WebGUI::Shop::TaxDriver::Generic;
|
||||
my $taxer = WebGUI::Shop::TaxDriver::Generic->new($session);
|
||||
my $taxIterator = $taxer->getItems;
|
||||
while (my $taxInfo = $taxIterator->hashRef) {
|
||||
my $taxId = $taxInfo->{taxId};
|
||||
$taxer->add($taxInfo); ##Automatically removes spaces now.
|
||||
$taxer->delete({taxId => $taxId});
|
||||
}
|
||||
print "DONE!\n" unless $quiet;
|
||||
}
|
||||
|
||||
|
||||
# -------------- DO NOT EDIT BELOW THIS LINE --------------------------------
|
||||
|
||||
#----------------------------------------------------------------------------
|
||||
# Add a package to the import node
|
||||
sub addPackage {
|
||||
my $session = shift;
|
||||
my $file = shift;
|
||||
|
||||
print "\tUpgrading package $file\n" unless $quiet;
|
||||
# Make a storage location for the package
|
||||
my $storage = WebGUI::Storage->createTemp( $session );
|
||||
$storage->addFileFromFilesystem( $file );
|
||||
|
||||
# Import the package into the import node
|
||||
my $package = eval {
|
||||
my $node = WebGUI::Asset->getImportNode($session);
|
||||
$node->importPackage( $storage, {
|
||||
overwriteLatest => 1,
|
||||
clearPackageFlag => 1,
|
||||
setDefaultTemplate => 1,
|
||||
} );
|
||||
};
|
||||
|
||||
if ($package eq 'corrupt') {
|
||||
die "Corrupt package found in $file. Stopping upgrade.\n";
|
||||
}
|
||||
if ($@ || !defined $package) {
|
||||
die "Error during package import on $file: $@\nStopping upgrade\n.";
|
||||
}
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
#-------------------------------------------------
|
||||
sub start {
|
||||
my $configFile;
|
||||
$|=1; #disable output buffering
|
||||
GetOptions(
|
||||
'configFile=s'=>\$configFile,
|
||||
'quiet'=>\$quiet
|
||||
);
|
||||
my $session = WebGUI::Session->open($webguiRoot,$configFile);
|
||||
$session->user({userId=>3});
|
||||
my $versionTag = WebGUI::VersionTag->getWorking($session);
|
||||
$versionTag->set({name=>"Upgrade to ".$toVersion});
|
||||
return $session;
|
||||
}
|
||||
|
||||
#-------------------------------------------------
|
||||
sub finish {
|
||||
my $session = shift;
|
||||
updateTemplates($session);
|
||||
my $versionTag = WebGUI::VersionTag->getWorking($session);
|
||||
$versionTag->commit;
|
||||
$session->db->write("insert into webguiVersion values (".$session->db->quote($toVersion).",'upgrade',".time().")");
|
||||
$session->close();
|
||||
}
|
||||
|
||||
#-------------------------------------------------
|
||||
sub updateTemplates {
|
||||
my $session = shift;
|
||||
return undef unless (-d "packages-".$toVersion);
|
||||
print "\tUpdating packages.\n" unless ($quiet);
|
||||
opendir(DIR,"packages-".$toVersion);
|
||||
my @files = readdir(DIR);
|
||||
closedir(DIR);
|
||||
my $newFolder = undef;
|
||||
foreach my $file (@files) {
|
||||
next unless ($file =~ /\.wgpkg$/);
|
||||
# Fix the filename to include a path
|
||||
$file = "packages-" . $toVersion . "/" . $file;
|
||||
addPackage( $session, $file );
|
||||
}
|
||||
}
|
||||
|
||||
#vim:ft=perl
|
||||
172
docs/upgrades/upgrade_7.10.2-7.10.3.pl
Normal file
172
docs/upgrades/upgrade_7.10.2-7.10.3.pl
Normal file
|
|
@ -0,0 +1,172 @@
|
|||
#!/usr/bin/env perl
|
||||
|
||||
#-------------------------------------------------------------------
|
||||
# WebGUI is Copyright 2001-2009 Plain Black Corporation.
|
||||
#-------------------------------------------------------------------
|
||||
# Please read the legal notices (docs/legal.txt) and the license
|
||||
# (docs/license.txt) that came with this distribution before using
|
||||
# this software.
|
||||
#-------------------------------------------------------------------
|
||||
# http://www.plainblack.com info@plainblack.com
|
||||
#-------------------------------------------------------------------
|
||||
|
||||
our ($webguiRoot);
|
||||
|
||||
BEGIN {
|
||||
$webguiRoot = "../..";
|
||||
unshift (@INC, $webguiRoot."/lib");
|
||||
}
|
||||
|
||||
use strict;
|
||||
use Getopt::Long;
|
||||
use WebGUI::Session;
|
||||
use WebGUI::Storage;
|
||||
use WebGUI::Asset;
|
||||
|
||||
|
||||
my $toVersion = '7.10.3';
|
||||
my $quiet; # this line required
|
||||
|
||||
|
||||
my $session = start(); # this line required
|
||||
|
||||
# upgrade functions go here
|
||||
pruneInboxMessagesFromDeletedUsers($session);
|
||||
addTemplateToNotifyAboutVersionTag($session);
|
||||
addPasswordRecoveryEmailTemplate($session);
|
||||
|
||||
finish($session); # this line required
|
||||
|
||||
|
||||
#----------------------------------------------------------------------------
|
||||
# Describe what our function does
|
||||
sub pruneInboxMessagesFromDeletedUsers {
|
||||
my $session = shift;
|
||||
print "\tPruning inbox messages from deleted users. This may take a while... " unless $quiet;
|
||||
my $sth = $session->db->prepare(<<EOSQL);
|
||||
select messageId, inbox.userId
|
||||
from inbox_messageState
|
||||
join inbox using (messageId)
|
||||
left outer join users on inbox.userId=users.userId
|
||||
where users.userId IS NULL
|
||||
EOSQL
|
||||
$sth->execute([]);
|
||||
use WebGUI::Inbox;
|
||||
my $inbox = WebGUI::Inbox->new($session);
|
||||
while (my ($messageId, $userId) = $sth->array) {
|
||||
my $message = $inbox->getMessage($messageId, $userId);
|
||||
if ($message) {
|
||||
$message->delete;
|
||||
}
|
||||
}
|
||||
print "...DONE!\n" unless $quiet;
|
||||
}
|
||||
|
||||
|
||||
#----------------------------------------------------------------------------
|
||||
# Describe what our function does
|
||||
sub addTemplateToNotifyAboutVersionTag {
|
||||
my $session = shift;
|
||||
print "\tAdd template to Notify About Version Tag workflow activities." unless $quiet;
|
||||
use WebGUI::Workflow::Activity;
|
||||
use WebGUI::Workflow::Activity::NotifyAboutVersionTag;
|
||||
my $templateId = WebGUI::Workflow::Activity::NotifyAboutVersionTag->definition($session)->[0]->{properties}->{templateId}->{defaultValue};
|
||||
my $activityList = $session->db->read(q|select activityId from WorkflowActivity|);
|
||||
while (my ($activityId) = $activityList->array) {
|
||||
my $activity = WebGUI::Workflow::Activity->new($session, $activityId);
|
||||
next unless $activity;
|
||||
next unless $activity->isa('WebGUI::Workflow::Activity::NotifyAboutVersionTag')
|
||||
|| $activity->isa('WebGUI::Workflow::Activity::RequestApprovalForVersionTag')
|
||||
;
|
||||
$activity->set('templateId', $templateId);
|
||||
}
|
||||
print "...DONE!\n" unless $quiet;
|
||||
}
|
||||
|
||||
|
||||
#----------------------------------------------------------------------------
|
||||
# Describe what our function does
|
||||
sub addPasswordRecoveryEmailTemplate {
|
||||
my $session = shift;
|
||||
print "\tAdd a template for the password recovery email." unless $quiet;
|
||||
$session->setting->add('webguiPasswordRecoveryEmailTemplate', 'sK_0zVw4kwdJ1sqREIsSzA');
|
||||
print "...DONE!\n" unless $quiet;
|
||||
}
|
||||
|
||||
|
||||
# -------------- DO NOT EDIT BELOW THIS LINE --------------------------------
|
||||
|
||||
#----------------------------------------------------------------------------
|
||||
# Add a package to the import node
|
||||
sub addPackage {
|
||||
my $session = shift;
|
||||
my $file = shift;
|
||||
|
||||
print "\tUpgrading package $file\n" unless $quiet;
|
||||
# Make a storage location for the package
|
||||
my $storage = WebGUI::Storage->createTemp( $session );
|
||||
$storage->addFileFromFilesystem( $file );
|
||||
|
||||
# Import the package into the import node
|
||||
my $package = eval {
|
||||
my $node = WebGUI::Asset->getImportNode($session);
|
||||
$node->importPackage( $storage, {
|
||||
overwriteLatest => 1,
|
||||
clearPackageFlag => 1,
|
||||
setDefaultTemplate => 1,
|
||||
} );
|
||||
};
|
||||
|
||||
if ($package eq 'corrupt') {
|
||||
die "Corrupt package found in $file. Stopping upgrade.\n";
|
||||
}
|
||||
if ($@ || !defined $package) {
|
||||
die "Error during package import on $file: $@\nStopping upgrade\n.";
|
||||
}
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
#-------------------------------------------------
|
||||
sub start {
|
||||
my $configFile;
|
||||
$|=1; #disable output buffering
|
||||
GetOptions(
|
||||
'configFile=s'=>\$configFile,
|
||||
'quiet'=>\$quiet
|
||||
);
|
||||
my $session = WebGUI::Session->open($webguiRoot,$configFile);
|
||||
$session->user({userId=>3});
|
||||
my $versionTag = WebGUI::VersionTag->getWorking($session);
|
||||
$versionTag->set({name=>"Upgrade to ".$toVersion});
|
||||
return $session;
|
||||
}
|
||||
|
||||
#-------------------------------------------------
|
||||
sub finish {
|
||||
my $session = shift;
|
||||
updateTemplates($session);
|
||||
my $versionTag = WebGUI::VersionTag->getWorking($session);
|
||||
$versionTag->commit;
|
||||
$session->db->write("insert into webguiVersion values (".$session->db->quote($toVersion).",'upgrade',".time().")");
|
||||
$session->close();
|
||||
}
|
||||
|
||||
#-------------------------------------------------
|
||||
sub updateTemplates {
|
||||
my $session = shift;
|
||||
return undef unless (-d "packages-".$toVersion);
|
||||
print "\tUpdating packages.\n" unless ($quiet);
|
||||
opendir(DIR,"packages-".$toVersion);
|
||||
my @files = readdir(DIR);
|
||||
closedir(DIR);
|
||||
my $newFolder = undef;
|
||||
foreach my $file (@files) {
|
||||
next unless ($file =~ /\.wgpkg$/);
|
||||
# Fix the filename to include a path
|
||||
$file = "packages-" . $toVersion . "/" . $file;
|
||||
addPackage( $session, $file );
|
||||
}
|
||||
}
|
||||
|
||||
#vim:ft=perl
|
||||
146
docs/upgrades/upgrade_7.10.20-7.10.21.pl
Normal file
146
docs/upgrades/upgrade_7.10.20-7.10.21.pl
Normal file
|
|
@ -0,0 +1,146 @@
|
|||
#!/usr/bin/env perl
|
||||
|
||||
#-------------------------------------------------------------------
|
||||
# WebGUI is Copyright 2001-2009 Plain Black Corporation.
|
||||
#-------------------------------------------------------------------
|
||||
# Please read the legal notices (docs/legal.txt) and the license
|
||||
# (docs/license.txt) that came with this distribution before using
|
||||
# this software.
|
||||
#-------------------------------------------------------------------
|
||||
# http://www.plainblack.com info@plainblack.com
|
||||
#-------------------------------------------------------------------
|
||||
|
||||
our ($webguiRoot);
|
||||
|
||||
BEGIN {
|
||||
$webguiRoot = "../..";
|
||||
unshift (@INC, $webguiRoot."/lib");
|
||||
}
|
||||
|
||||
use strict;
|
||||
use Getopt::Long;
|
||||
use WebGUI::Session;
|
||||
use WebGUI::Storage;
|
||||
use WebGUI::Asset;
|
||||
|
||||
|
||||
my $toVersion = '7.10.21';
|
||||
my $quiet; # this line required
|
||||
|
||||
|
||||
my $session = start(); # this line required
|
||||
addWaitForConfirmationWorkflow($session);
|
||||
addCreateUsersEnabledSetting($session);
|
||||
finish($session); # this line required
|
||||
|
||||
|
||||
#----------------------------------------------------------------------------
|
||||
sub addWaitForConfirmationWorkflow {
|
||||
my $session = shift;
|
||||
my $c = $session->config;
|
||||
my $exists = $c->get('workflowActivities/WebGUI::User');
|
||||
my $class = 'WebGUI::Workflow::Activity::WaitForUserConfirmation';
|
||||
unless (grep { $_ eq $class } @$exists) {
|
||||
print "Adding WaitForUserConfirmation workflow..." unless $quiet;
|
||||
$c->addToArray('workflowActivities/WebGUI::User' => $class);
|
||||
print "Done!\n" unless $quiet;
|
||||
}
|
||||
}
|
||||
|
||||
#----------------------------------------------------------------------------
|
||||
sub addCreateUsersEnabledSetting {
|
||||
my $session = shift;
|
||||
my $s = $session->setting;
|
||||
my $name = 'enableUsersAfterAnonymousRegistration';
|
||||
return if $s->has($name);
|
||||
print "Adding $name setting..." unless $quiet;
|
||||
$s->add($name => 1);
|
||||
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;
|
||||
|
||||
print "\tUpgrading package $file\n" unless $quiet;
|
||||
# Make a storage location for the package
|
||||
my $storage = WebGUI::Storage->createTemp( $session );
|
||||
$storage->addFileFromFilesystem( $file );
|
||||
|
||||
# Import the package into the import node
|
||||
my $package = eval {
|
||||
my $node = WebGUI::Asset->getImportNode($session);
|
||||
$node->importPackage( $storage, {
|
||||
overwriteLatest => 1,
|
||||
clearPackageFlag => 1,
|
||||
setDefaultTemplate => 1,
|
||||
} );
|
||||
};
|
||||
|
||||
if ($package eq 'corrupt') {
|
||||
die "Corrupt package found in $file. Stopping upgrade.\n";
|
||||
}
|
||||
if ($@ || !defined $package) {
|
||||
die "Error during package import on $file: $@\nStopping upgrade\n.";
|
||||
}
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
#-------------------------------------------------
|
||||
sub start {
|
||||
my $configFile;
|
||||
$|=1; #disable output buffering
|
||||
GetOptions(
|
||||
'configFile=s'=>\$configFile,
|
||||
'quiet'=>\$quiet
|
||||
);
|
||||
my $session = WebGUI::Session->open($webguiRoot,$configFile);
|
||||
$session->user({userId=>3});
|
||||
my $versionTag = WebGUI::VersionTag->getWorking($session);
|
||||
$versionTag->set({name=>"Upgrade to ".$toVersion});
|
||||
return $session;
|
||||
}
|
||||
|
||||
#-------------------------------------------------
|
||||
sub finish {
|
||||
my $session = shift;
|
||||
updateTemplates($session);
|
||||
my $versionTag = WebGUI::VersionTag->getWorking($session);
|
||||
$versionTag->commit;
|
||||
$session->db->write("insert into webguiVersion values (".$session->db->quote($toVersion).",'upgrade',".time().")");
|
||||
$session->close();
|
||||
}
|
||||
|
||||
#-------------------------------------------------
|
||||
sub updateTemplates {
|
||||
my $session = shift;
|
||||
return undef unless (-d "packages-".$toVersion);
|
||||
print "\tUpdating packages.\n" unless ($quiet);
|
||||
opendir(DIR,"packages-".$toVersion);
|
||||
my @files = readdir(DIR);
|
||||
closedir(DIR);
|
||||
my $newFolder = undef;
|
||||
foreach my $file (@files) {
|
||||
next unless ($file =~ /\.wgpkg$/);
|
||||
# Fix the filename to include a path
|
||||
$file = "packages-" . $toVersion . "/" . $file;
|
||||
addPackage( $session, $file );
|
||||
}
|
||||
}
|
||||
|
||||
#vim:ft=perl
|
||||
200
docs/upgrades/upgrade_7.10.21-7.10.22.pl
Normal file
200
docs/upgrades/upgrade_7.10.21-7.10.22.pl
Normal file
|
|
@ -0,0 +1,200 @@
|
|||
#!/usr/bin/env perl
|
||||
|
||||
#-------------------------------------------------------------------
|
||||
# WebGUI is Copyright 2001-2009 Plain Black Corporation.
|
||||
#-------------------------------------------------------------------
|
||||
# Please read the legal notices (docs/legal.txt) and the license
|
||||
# (docs/license.txt) that came with this distribution before using
|
||||
# this software.
|
||||
#-------------------------------------------------------------------
|
||||
# http://www.plainblack.com info@plainblack.com
|
||||
#-------------------------------------------------------------------
|
||||
|
||||
our ($webguiRoot);
|
||||
|
||||
BEGIN {
|
||||
$webguiRoot = "../..";
|
||||
unshift (@INC, $webguiRoot."/lib");
|
||||
}
|
||||
|
||||
use strict;
|
||||
use Getopt::Long;
|
||||
use WebGUI::Session;
|
||||
use WebGUI::Storage;
|
||||
use WebGUI::Asset;
|
||||
|
||||
|
||||
my $toVersion = '7.10.22';
|
||||
my $quiet; # this line required
|
||||
|
||||
|
||||
my $session = start(); # this line required
|
||||
|
||||
# upgrade functions go here
|
||||
addAuthorizePaymentDriver($session);
|
||||
|
||||
createAddressField($session);
|
||||
addLinkedProfileAddress($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 Authorize.net payment driver to each config file
|
||||
sub addAuthorizePaymentDriver {
|
||||
my $session = shift;
|
||||
print "\tAdd the Authorize.net payment driver... " unless $quiet;
|
||||
# and here's our code
|
||||
$session->config->addToArray('paymentDrivers', 'WebGUI::Shop::PayDriver::CreditCard::AuthorizeNet');
|
||||
print "DONE!\n" unless $quiet;
|
||||
}
|
||||
|
||||
#----------------------------------------------------------------------------
|
||||
sub addLinkedProfileAddress {
|
||||
my $session = shift;
|
||||
print "\tAdding linked profile addresses for existing users... " unless $quiet;
|
||||
|
||||
my $users = $session->db->read( q{ select userId from users } );
|
||||
|
||||
use WebGUI::User;
|
||||
use WebGUI::Shop::AddressBook;
|
||||
while (my ($userId) = $users->array()) {
|
||||
#check to see if there is user profile information available
|
||||
next if $userId eq '1' or $userId eq '3';
|
||||
last unless $userId;
|
||||
my $u = WebGUI::User->new($session,$userId);
|
||||
#skip if user does not have any homeAddress fields filled in
|
||||
next unless (
|
||||
$u->profileField("homeAddress")
|
||||
|| $u->profileField("homeCity")
|
||||
|| $u->profileField("homeState")
|
||||
|| $u->profileField("homeZip")
|
||||
|| $u->profileField("homeCountry")
|
||||
|| $u->profileField("homePhone")
|
||||
);
|
||||
|
||||
#Get the address book for the user (one is created if it does not exist)
|
||||
my $addressBook = WebGUI::Shop::AddressBook->newByUserId($session,$userId);
|
||||
|
||||
#Add the profile address for the user
|
||||
$addressBook->addAddress({
|
||||
label => "Profile Address",
|
||||
firstName => $u->profileField("firstName"),
|
||||
lastName => $u->profileField("lastName"),
|
||||
address1 => $u->profileField("homeAddress"),
|
||||
city => $u->profileField("homeCity"),
|
||||
state => $u->profileField("homeState"),
|
||||
country => $u->profileField("homeCountry"),
|
||||
code => $u->profileField("homeZip"),
|
||||
phoneNumber => $u->profileField("homePhone"),
|
||||
email => $u->profileField("email"),
|
||||
isProfile => 1,
|
||||
});
|
||||
}
|
||||
|
||||
print "DONE!\n" unless $quiet;
|
||||
}
|
||||
|
||||
#----------------------------------------------------------------------------
|
||||
sub createAddressField {
|
||||
my $session = shift;
|
||||
|
||||
#skip if field exists
|
||||
my $columns = $session->db->buildArrayRef("show columns from address where Field='isProfile'");
|
||||
return if(scalar(@$columns));
|
||||
|
||||
print "\tAdding profile link to Address... " unless $quiet;
|
||||
|
||||
$session->db->write( q{
|
||||
alter table address add isProfile tinyint default 0
|
||||
} );
|
||||
|
||||
print "DONE!\n" unless $quiet;
|
||||
}
|
||||
|
||||
|
||||
# -------------- DO NOT EDIT BELOW THIS LINE --------------------------------
|
||||
|
||||
#----------------------------------------------------------------------------
|
||||
# Add a package to the import node
|
||||
sub addPackage {
|
||||
my $session = shift;
|
||||
my $file = shift;
|
||||
|
||||
print "\tUpgrading package $file\n" unless $quiet;
|
||||
# Make a storage location for the package
|
||||
my $storage = WebGUI::Storage->createTemp( $session );
|
||||
$storage->addFileFromFilesystem( $file );
|
||||
|
||||
# Import the package into the import node
|
||||
my $package = eval {
|
||||
my $node = WebGUI::Asset->getImportNode($session);
|
||||
$node->importPackage( $storage, {
|
||||
overwriteLatest => 1,
|
||||
clearPackageFlag => 1,
|
||||
setDefaultTemplate => 1,
|
||||
} );
|
||||
};
|
||||
|
||||
if ($package eq 'corrupt') {
|
||||
die "Corrupt package found in $file. Stopping upgrade.\n";
|
||||
}
|
||||
if ($@ || !defined $package) {
|
||||
die "Error during package import on $file: $@\nStopping upgrade\n.";
|
||||
}
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
#-------------------------------------------------
|
||||
sub start {
|
||||
my $configFile;
|
||||
$|=1; #disable output buffering
|
||||
GetOptions(
|
||||
'configFile=s'=>\$configFile,
|
||||
'quiet'=>\$quiet
|
||||
);
|
||||
my $session = WebGUI::Session->open($webguiRoot,$configFile);
|
||||
$session->user({userId=>3});
|
||||
my $versionTag = WebGUI::VersionTag->getWorking($session);
|
||||
$versionTag->set({name=>"Upgrade to ".$toVersion});
|
||||
return $session;
|
||||
}
|
||||
|
||||
#-------------------------------------------------
|
||||
sub finish {
|
||||
my $session = shift;
|
||||
updateTemplates($session);
|
||||
my $versionTag = WebGUI::VersionTag->getWorking($session);
|
||||
$versionTag->commit;
|
||||
$session->db->write("insert into webguiVersion values (".$session->db->quote($toVersion).",'upgrade',".time().")");
|
||||
$session->close();
|
||||
}
|
||||
|
||||
#-------------------------------------------------
|
||||
sub updateTemplates {
|
||||
my $session = shift;
|
||||
return undef unless (-d "packages-".$toVersion);
|
||||
print "\tUpdating packages.\n" unless ($quiet);
|
||||
opendir(DIR,"packages-".$toVersion);
|
||||
my @files = readdir(DIR);
|
||||
closedir(DIR);
|
||||
my $newFolder = undef;
|
||||
foreach my $file (@files) {
|
||||
next unless ($file =~ /\.wgpkg$/);
|
||||
# Fix the filename to include a path
|
||||
$file = "packages-" . $toVersion . "/" . $file;
|
||||
addPackage( $session, $file );
|
||||
}
|
||||
}
|
||||
|
||||
#vim:ft=perl
|
||||
141
docs/upgrades/upgrade_7.10.22-7.10.23.pl
Normal file
141
docs/upgrades/upgrade_7.10.22-7.10.23.pl
Normal file
|
|
@ -0,0 +1,141 @@
|
|||
#!/usr/bin/env perl
|
||||
|
||||
#-------------------------------------------------------------------
|
||||
# WebGUI is Copyright 2001-2009 Plain Black Corporation.
|
||||
#-------------------------------------------------------------------
|
||||
# Please read the legal notices (docs/legal.txt) and the license
|
||||
# (docs/license.txt) that came with this distribution before using
|
||||
# this software.
|
||||
#-------------------------------------------------------------------
|
||||
# http://www.plainblack.com info@plainblack.com
|
||||
#-------------------------------------------------------------------
|
||||
|
||||
our ($webguiRoot);
|
||||
|
||||
BEGIN {
|
||||
$webguiRoot = "../..";
|
||||
unshift (@INC, $webguiRoot."/lib");
|
||||
}
|
||||
|
||||
use strict;
|
||||
use Getopt::Long;
|
||||
use WebGUI::Session;
|
||||
use WebGUI::Storage;
|
||||
use WebGUI::Asset;
|
||||
|
||||
|
||||
my $toVersion = '7.10.23';
|
||||
my $quiet; # this line required
|
||||
|
||||
|
||||
my $session = start(); # this line required
|
||||
|
||||
# upgrade functions go here
|
||||
fixBadTemplateAttachments($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 fixBadTemplateAttachments {
|
||||
my $session = shift;
|
||||
print "\tRemove template attachements in search templates that refer to an old, deleted CSS snippet... " unless $quiet;
|
||||
# and here's our code
|
||||
use WebGUI::Asset::Template;
|
||||
my $get_template = WebGUI::Asset::Template->getIsa($session);
|
||||
TEMPLATE: while (1) {
|
||||
my $template = eval {$get_template->()};
|
||||
next TEMPLATE if Exception::Class->caught;
|
||||
last TEMPLATE unless $template;
|
||||
next TEMPLATE unless $template->get('namespace') eq 'Search';
|
||||
$template->removeAttachments(['^/(webgui.css);']);
|
||||
}
|
||||
print "DONE!\n" unless $quiet;
|
||||
}
|
||||
|
||||
|
||||
# -------------- DO NOT EDIT BELOW THIS LINE --------------------------------
|
||||
|
||||
#----------------------------------------------------------------------------
|
||||
# Add a package to the import node
|
||||
sub addPackage {
|
||||
my $session = shift;
|
||||
my $file = shift;
|
||||
|
||||
print "\tUpgrading package $file\n" unless $quiet;
|
||||
# Make a storage location for the package
|
||||
my $storage = WebGUI::Storage->createTemp( $session );
|
||||
$storage->addFileFromFilesystem( $file );
|
||||
|
||||
# Import the package into the import node
|
||||
my $package = eval {
|
||||
my $node = WebGUI::Asset->getImportNode($session);
|
||||
$node->importPackage( $storage, {
|
||||
overwriteLatest => 1,
|
||||
clearPackageFlag => 1,
|
||||
setDefaultTemplate => 1,
|
||||
} );
|
||||
};
|
||||
|
||||
if ($package eq 'corrupt') {
|
||||
die "Corrupt package found in $file. Stopping upgrade.\n";
|
||||
}
|
||||
if ($@ || !defined $package) {
|
||||
die "Error during package import on $file: $@\nStopping upgrade\n.";
|
||||
}
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
#-------------------------------------------------
|
||||
sub start {
|
||||
my $configFile;
|
||||
$|=1; #disable output buffering
|
||||
GetOptions(
|
||||
'configFile=s'=>\$configFile,
|
||||
'quiet'=>\$quiet
|
||||
);
|
||||
my $session = WebGUI::Session->open($webguiRoot,$configFile);
|
||||
$session->user({userId=>3});
|
||||
my $versionTag = WebGUI::VersionTag->getWorking($session);
|
||||
$versionTag->set({name=>"Upgrade to ".$toVersion});
|
||||
return $session;
|
||||
}
|
||||
|
||||
#-------------------------------------------------
|
||||
sub finish {
|
||||
my $session = shift;
|
||||
updateTemplates($session);
|
||||
my $versionTag = WebGUI::VersionTag->getWorking($session);
|
||||
$versionTag->commit;
|
||||
$session->db->write("insert into webguiVersion values (".$session->db->quote($toVersion).",'upgrade',".time().")");
|
||||
$session->close();
|
||||
}
|
||||
|
||||
#-------------------------------------------------
|
||||
sub updateTemplates {
|
||||
my $session = shift;
|
||||
return undef unless (-d "packages-".$toVersion);
|
||||
print "\tUpdating packages.\n" unless ($quiet);
|
||||
opendir(DIR,"packages-".$toVersion);
|
||||
my @files = readdir(DIR);
|
||||
closedir(DIR);
|
||||
my $newFolder = undef;
|
||||
foreach my $file (@files) {
|
||||
next unless ($file =~ /\.wgpkg$/);
|
||||
# Fix the filename to include a path
|
||||
$file = "packages-" . $toVersion . "/" . $file;
|
||||
addPackage( $session, $file );
|
||||
}
|
||||
}
|
||||
|
||||
#vim:ft=perl
|
||||
183
docs/upgrades/upgrade_7.10.23-7.10.24.pl
Normal file
183
docs/upgrades/upgrade_7.10.23-7.10.24.pl
Normal file
|
|
@ -0,0 +1,183 @@
|
|||
#!/usr/bin/env perl
|
||||
|
||||
#-------------------------------------------------------------------
|
||||
# WebGUI is Copyright 2001-2009 Plain Black Corporation.
|
||||
#-------------------------------------------------------------------
|
||||
# Please read the legal notices (docs/legal.txt) and the license
|
||||
# (docs/license.txt) that came with this distribution before using
|
||||
# this software.
|
||||
#-------------------------------------------------------------------
|
||||
# http://www.plainblack.com info@plainblack.com
|
||||
#-------------------------------------------------------------------
|
||||
|
||||
our ($webguiRoot);
|
||||
|
||||
BEGIN {
|
||||
$webguiRoot = "../..";
|
||||
unshift (@INC, $webguiRoot."/lib");
|
||||
}
|
||||
|
||||
use strict;
|
||||
use Getopt::Long;
|
||||
use WebGUI::Session;
|
||||
use WebGUI::Storage;
|
||||
use WebGUI::Asset;
|
||||
|
||||
|
||||
my $toVersion = '7.10.24';
|
||||
my $quiet; # this line required
|
||||
|
||||
|
||||
my $session = start(); # this line required
|
||||
|
||||
# upgrade functions go here
|
||||
addPALastLogTable($session);
|
||||
addForkRedirect($session);
|
||||
extendBucketName($session);
|
||||
fixSurveyQuestionTypes($session);
|
||||
|
||||
finish($session); # this line required
|
||||
|
||||
|
||||
#----------------------------------------------------------------------------
|
||||
# Describe what our function does
|
||||
sub addPALastLogTable {
|
||||
my $session = shift;
|
||||
print "\tAdd a table to keep track of additional Passive Analytics data... " unless $quiet;
|
||||
# and here's our code
|
||||
$session->db->write(<<EOSQL);
|
||||
CREATE TABLE IF NOT EXISTS `PA_lastLog` (
|
||||
`userId` char(22) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL,
|
||||
`assetId` char(22) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL,
|
||||
`sessionId` char(22) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL,
|
||||
`timeStamp` bigint(20) DEFAULT NULL,
|
||||
`url` char(255) NOT NULL,
|
||||
PRIMARY KEY (userId, sessionId)
|
||||
) ENGINE=MyISAM DEFAULT CHARSET=utf8
|
||||
EOSQL
|
||||
print "DONE!\n" unless $quiet;
|
||||
}
|
||||
|
||||
#----------------------------------------------------------------------------
|
||||
# Describe what our function does
|
||||
sub addForkRedirect {
|
||||
my $session = shift;
|
||||
print "\tAdd a column to Fork to keep track of late generated redirect URLs... " unless $quiet;
|
||||
# and here's our code
|
||||
$session->db->write(<<EOSQL);
|
||||
ALTER TABLE Fork add column redirect CHAR(255);
|
||||
EOSQL
|
||||
print "DONE!\n" unless $quiet;
|
||||
}
|
||||
|
||||
#----------------------------------------------------------------------------
|
||||
# Describe what our function does
|
||||
sub extendBucketName {
|
||||
my $session = shift;
|
||||
print "\tExtend the size of the bucket name in the bucketLog table for Passive Analytics... " unless $quiet;
|
||||
# and here's our code
|
||||
$session->db->write(<<EOSQL);
|
||||
ALTER TABLE bucketLog CHANGE COLUMN Bucket Bucket CHAR(255)
|
||||
EOSQL
|
||||
print "DONE!\n" unless $quiet;
|
||||
}
|
||||
|
||||
|
||||
#----------------------------------------------------------------------------
|
||||
# Describe what our function does
|
||||
sub fixSurveyQuestionTypes {
|
||||
my $session = shift;
|
||||
print "\tFix bad custom Question Types in the Survey... " unless $quiet;
|
||||
# and here's our code
|
||||
$session->db->write(<<EOSQL);
|
||||
update Survey_questionTypes set answers="{}" where answers like 'HASH%';
|
||||
EOSQL
|
||||
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;
|
||||
|
||||
print "\tUpgrading package $file\n" unless $quiet;
|
||||
# Make a storage location for the package
|
||||
my $storage = WebGUI::Storage->createTemp( $session );
|
||||
$storage->addFileFromFilesystem( $file );
|
||||
|
||||
# Import the package into the import node
|
||||
my $package = eval {
|
||||
my $node = WebGUI::Asset->getImportNode($session);
|
||||
$node->importPackage( $storage, {
|
||||
overwriteLatest => 1,
|
||||
clearPackageFlag => 1,
|
||||
setDefaultTemplate => 1,
|
||||
} );
|
||||
};
|
||||
|
||||
if ($package eq 'corrupt') {
|
||||
die "Corrupt package found in $file. Stopping upgrade.\n";
|
||||
}
|
||||
if ($@ || !defined $package) {
|
||||
die "Error during package import on $file: $@\nStopping upgrade\n.";
|
||||
}
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
#-------------------------------------------------
|
||||
sub start {
|
||||
my $configFile;
|
||||
$|=1; #disable output buffering
|
||||
GetOptions(
|
||||
'configFile=s'=>\$configFile,
|
||||
'quiet'=>\$quiet
|
||||
);
|
||||
my $session = WebGUI::Session->open($webguiRoot,$configFile);
|
||||
$session->user({userId=>3});
|
||||
my $versionTag = WebGUI::VersionTag->getWorking($session);
|
||||
$versionTag->set({name=>"Upgrade to ".$toVersion});
|
||||
return $session;
|
||||
}
|
||||
|
||||
#-------------------------------------------------
|
||||
sub finish {
|
||||
my $session = shift;
|
||||
updateTemplates($session);
|
||||
my $versionTag = WebGUI::VersionTag->getWorking($session);
|
||||
$versionTag->commit;
|
||||
$session->db->write("insert into webguiVersion values (".$session->db->quote($toVersion).",'upgrade',".time().")");
|
||||
$session->close();
|
||||
}
|
||||
|
||||
#-------------------------------------------------
|
||||
sub updateTemplates {
|
||||
my $session = shift;
|
||||
return undef unless (-d "packages-".$toVersion);
|
||||
print "\tUpdating packages.\n" unless ($quiet);
|
||||
opendir(DIR,"packages-".$toVersion);
|
||||
my @files = readdir(DIR);
|
||||
closedir(DIR);
|
||||
my $newFolder = undef;
|
||||
foreach my $file (@files) {
|
||||
next unless ($file =~ /\.wgpkg$/);
|
||||
# Fix the filename to include a path
|
||||
$file = "packages-" . $toVersion . "/" . $file;
|
||||
addPackage( $session, $file );
|
||||
}
|
||||
}
|
||||
|
||||
#vim:ft=perl
|
||||
139
docs/upgrades/upgrade_7.10.24-7.10.25.pl
Normal file
139
docs/upgrades/upgrade_7.10.24-7.10.25.pl
Normal file
|
|
@ -0,0 +1,139 @@
|
|||
#!/usr/bin/env perl
|
||||
|
||||
#-------------------------------------------------------------------
|
||||
# WebGUI is Copyright 2001-2009 Plain Black Corporation.
|
||||
#-------------------------------------------------------------------
|
||||
# Please read the legal notices (docs/legal.txt) and the license
|
||||
# (docs/license.txt) that came with this distribution before using
|
||||
# this software.
|
||||
#-------------------------------------------------------------------
|
||||
# http://www.plainblack.com info@plainblack.com
|
||||
#-------------------------------------------------------------------
|
||||
|
||||
our ($webguiRoot);
|
||||
|
||||
BEGIN {
|
||||
$webguiRoot = "../..";
|
||||
unshift (@INC, $webguiRoot."/lib");
|
||||
}
|
||||
|
||||
use strict;
|
||||
use Getopt::Long;
|
||||
use WebGUI::Session;
|
||||
use WebGUI::Storage;
|
||||
use WebGUI::Asset;
|
||||
|
||||
|
||||
my $toVersion = '7.10.25';
|
||||
my $quiet; # this line required
|
||||
|
||||
|
||||
my $session = start(); # this line required
|
||||
|
||||
# upgrade functions go here
|
||||
installCleanCookieJars($session);
|
||||
|
||||
finish($session); # this line required
|
||||
|
||||
|
||||
#----------------------------------------------------------------------------
|
||||
# Describe what our function does
|
||||
sub installCleanCookieJars {
|
||||
my $session = shift;
|
||||
print "\tInstall the new CleanCookieJars workflow activity... " unless $quiet;
|
||||
# and here's our code
|
||||
$session->config->addToArray('workflowActivities/None', 'WebGUI::Workflow::Activity::CleanCookieJars');
|
||||
my $workflow = WebGUI::Workflow->new($session, 'pbworkflow000000000001');
|
||||
my $cleaner = $workflow->addActivity('WebGUI::Workflow::Activity::CleanCookieJars');
|
||||
$cleaner->set('title', 'Clean HttpProxy Cookie jars');
|
||||
$cleaner->set('description', 'Removes cookie jar files from the HttpProxy asset that are older than 1 day');
|
||||
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;
|
||||
|
||||
print "\tUpgrading package $file\n" unless $quiet;
|
||||
# Make a storage location for the package
|
||||
my $storage = WebGUI::Storage->createTemp( $session );
|
||||
$storage->addFileFromFilesystem( $file );
|
||||
|
||||
# Import the package into the import node
|
||||
my $package = eval {
|
||||
my $node = WebGUI::Asset->getImportNode($session);
|
||||
$node->importPackage( $storage, {
|
||||
overwriteLatest => 1,
|
||||
clearPackageFlag => 1,
|
||||
setDefaultTemplate => 1,
|
||||
} );
|
||||
};
|
||||
|
||||
if ($package eq 'corrupt') {
|
||||
die "Corrupt package found in $file. Stopping upgrade.\n";
|
||||
}
|
||||
if ($@ || !defined $package) {
|
||||
die "Error during package import on $file: $@\nStopping upgrade\n.";
|
||||
}
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
#-------------------------------------------------
|
||||
sub start {
|
||||
my $configFile;
|
||||
$|=1; #disable output buffering
|
||||
GetOptions(
|
||||
'configFile=s'=>\$configFile,
|
||||
'quiet'=>\$quiet
|
||||
);
|
||||
my $session = WebGUI::Session->open($webguiRoot,$configFile);
|
||||
$session->user({userId=>3});
|
||||
my $versionTag = WebGUI::VersionTag->getWorking($session);
|
||||
$versionTag->set({name=>"Upgrade to ".$toVersion});
|
||||
return $session;
|
||||
}
|
||||
|
||||
#-------------------------------------------------
|
||||
sub finish {
|
||||
my $session = shift;
|
||||
updateTemplates($session);
|
||||
my $versionTag = WebGUI::VersionTag->getWorking($session);
|
||||
$versionTag->commit;
|
||||
$session->db->write("insert into webguiVersion values (".$session->db->quote($toVersion).",'upgrade',".time().")");
|
||||
$session->close();
|
||||
}
|
||||
|
||||
#-------------------------------------------------
|
||||
sub updateTemplates {
|
||||
my $session = shift;
|
||||
return undef unless (-d "packages-".$toVersion);
|
||||
print "\tUpdating packages.\n" unless ($quiet);
|
||||
opendir(DIR,"packages-".$toVersion);
|
||||
my @files = readdir(DIR);
|
||||
closedir(DIR);
|
||||
my $newFolder = undef;
|
||||
foreach my $file (@files) {
|
||||
next unless ($file =~ /\.wgpkg$/);
|
||||
# Fix the filename to include a path
|
||||
$file = "packages-" . $toVersion . "/" . $file;
|
||||
addPackage( $session, $file );
|
||||
}
|
||||
}
|
||||
|
||||
#vim:ft=perl
|
||||
123
docs/upgrades/upgrade_7.10.25-7.10.26.pl
Normal file
123
docs/upgrades/upgrade_7.10.25-7.10.26.pl
Normal file
|
|
@ -0,0 +1,123 @@
|
|||
#!/usr/bin/env perl
|
||||
|
||||
#-------------------------------------------------------------------
|
||||
# WebGUI is Copyright 2001-2009 Plain Black Corporation.
|
||||
#-------------------------------------------------------------------
|
||||
# Please read the legal notices (docs/legal.txt) and the license
|
||||
# (docs/license.txt) that came with this distribution before using
|
||||
# this software.
|
||||
#-------------------------------------------------------------------
|
||||
# http://www.plainblack.com info@plainblack.com
|
||||
#-------------------------------------------------------------------
|
||||
|
||||
our ($webguiRoot);
|
||||
|
||||
BEGIN {
|
||||
$webguiRoot = "../..";
|
||||
unshift (@INC, $webguiRoot."/lib");
|
||||
}
|
||||
|
||||
use strict;
|
||||
use Getopt::Long;
|
||||
use WebGUI::Session;
|
||||
use WebGUI::Storage;
|
||||
use WebGUI::Asset;
|
||||
|
||||
|
||||
my $toVersion = '7.10.26';
|
||||
my $quiet; # this line required
|
||||
|
||||
|
||||
my $session = start(); # this line required
|
||||
|
||||
# upgrade functions go here
|
||||
|
||||
finish($session); # this line required
|
||||
|
||||
|
||||
#----------------------------------------------------------------------------
|
||||
# Describe what our function does
|
||||
#sub exampleFunction {
|
||||
# my $session = shift;
|
||||
# print "\tWe're doing some stuff here that you should know about... " unless $quiet;
|
||||
# # and here's our code
|
||||
# print "DONE!\n" unless $quiet;
|
||||
#}
|
||||
|
||||
|
||||
# -------------- DO NOT EDIT BELOW THIS LINE --------------------------------
|
||||
|
||||
#----------------------------------------------------------------------------
|
||||
# Add a package to the import node
|
||||
sub addPackage {
|
||||
my $session = shift;
|
||||
my $file = shift;
|
||||
|
||||
print "\tUpgrading package $file\n" unless $quiet;
|
||||
# Make a storage location for the package
|
||||
my $storage = WebGUI::Storage->createTemp( $session );
|
||||
$storage->addFileFromFilesystem( $file );
|
||||
|
||||
# Import the package into the import node
|
||||
my $package = eval {
|
||||
my $node = WebGUI::Asset->getImportNode($session);
|
||||
$node->importPackage( $storage, {
|
||||
overwriteLatest => 1,
|
||||
clearPackageFlag => 1,
|
||||
setDefaultTemplate => 1,
|
||||
} );
|
||||
};
|
||||
|
||||
if ($package eq 'corrupt') {
|
||||
die "Corrupt package found in $file. Stopping upgrade.\n";
|
||||
}
|
||||
if ($@ || !defined $package) {
|
||||
die "Error during package import on $file: $@\nStopping upgrade\n.";
|
||||
}
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
#-------------------------------------------------
|
||||
sub start {
|
||||
my $configFile;
|
||||
$|=1; #disable output buffering
|
||||
GetOptions(
|
||||
'configFile=s'=>\$configFile,
|
||||
'quiet'=>\$quiet
|
||||
);
|
||||
my $session = WebGUI::Session->open($webguiRoot,$configFile);
|
||||
$session->user({userId=>3});
|
||||
my $versionTag = WebGUI::VersionTag->getWorking($session);
|
||||
$versionTag->set({name=>"Upgrade to ".$toVersion});
|
||||
return $session;
|
||||
}
|
||||
|
||||
#-------------------------------------------------
|
||||
sub finish {
|
||||
my $session = shift;
|
||||
updateTemplates($session);
|
||||
my $versionTag = WebGUI::VersionTag->getWorking($session);
|
||||
$versionTag->commit;
|
||||
$session->db->write("insert into webguiVersion values (".$session->db->quote($toVersion).",'upgrade',".time().")");
|
||||
$session->close();
|
||||
}
|
||||
|
||||
#-------------------------------------------------
|
||||
sub updateTemplates {
|
||||
my $session = shift;
|
||||
return undef unless (-d "packages-".$toVersion);
|
||||
print "\tUpdating packages.\n" unless ($quiet);
|
||||
opendir(DIR,"packages-".$toVersion);
|
||||
my @files = readdir(DIR);
|
||||
closedir(DIR);
|
||||
my $newFolder = undef;
|
||||
foreach my $file (@files) {
|
||||
next unless ($file =~ /\.wgpkg$/);
|
||||
# Fix the filename to include a path
|
||||
$file = "packages-" . $toVersion . "/" . $file;
|
||||
addPackage( $session, $file );
|
||||
}
|
||||
}
|
||||
|
||||
#vim:ft=perl
|
||||
196
docs/upgrades/upgrade_7.10.26-7.10.27.pl
Normal file
196
docs/upgrades/upgrade_7.10.26-7.10.27.pl
Normal file
|
|
@ -0,0 +1,196 @@
|
|||
#!/usr/bin/env perl
|
||||
|
||||
#-------------------------------------------------------------------
|
||||
# WebGUI is Copyright 2001-2009 Plain Black Corporation.
|
||||
#-------------------------------------------------------------------
|
||||
# Please read the legal notices (docs/legal.txt) and the license
|
||||
# (docs/license.txt) that came with this distribution before using
|
||||
# this software.
|
||||
#-------------------------------------------------------------------
|
||||
# http://www.plainblack.com info@plainblack.com
|
||||
#-------------------------------------------------------------------
|
||||
|
||||
our ($webguiRoot);
|
||||
|
||||
BEGIN {
|
||||
$webguiRoot = "../..";
|
||||
unshift (@INC, $webguiRoot."/lib");
|
||||
}
|
||||
|
||||
use strict;
|
||||
use Getopt::Long;
|
||||
use WebGUI::Session;
|
||||
use WebGUI::Storage;
|
||||
use WebGUI::Asset;
|
||||
|
||||
|
||||
my $toVersion = '7.10.27';
|
||||
my $quiet; # this line required
|
||||
|
||||
|
||||
my $session = start(); # this line required
|
||||
|
||||
# upgrade functions go here
|
||||
fixMetaDataRevisionDates($session);
|
||||
addPhotoHeightToStoryArchive($session);
|
||||
|
||||
finish($session); # this line required
|
||||
|
||||
|
||||
#----------------------------------------------------------------------------
|
||||
# Describe what our function does
|
||||
sub fixMetaDataRevisionDates {
|
||||
my $session = shift;
|
||||
print "\tCheck to see if metaData has bad revision dates... " unless $quiet;
|
||||
my $getMeta0 = $session->db->read(
|
||||
'SELECT fieldId, assetId, value from metaData_values where revisionDate=0'
|
||||
);
|
||||
my $getRevisionDates = $session->db->prepare(
|
||||
'select revisionDate from assetData where assetId=? order by revisionDate'
|
||||
);
|
||||
my $getMetaValue = $session->db->prepare(
|
||||
'select value from metaData_values where assetId=? and fieldId=? and revisionDate=?'
|
||||
);
|
||||
my $updateMetaValue = $session->db->prepare(
|
||||
'UPDATE metaData_values set value=? where assetId=? AND fieldId=? and revisionDate=?'
|
||||
);
|
||||
my $insertMetaValue = $session->db->prepare(
|
||||
'INSERT INTO metaData_values (assetId, fieldId, value, revisionDate) VALUES (?,?,?,?)'
|
||||
);
|
||||
##Get each metaData_value entry
|
||||
METAENTRY: while (my $metaEntry = $getMeta0->hashRef) {
|
||||
$getRevisionDates->execute([$metaEntry->{assetId}]);
|
||||
##Get all revisionDates for the asset in that entry
|
||||
REVISIONDATE: while (my ($revisionDate) = $getRevisionDates->array) {
|
||||
##Find the metaData value for that revisionDate
|
||||
$getMetaValue->execute([$metaEntry->{assetId}, $metaEntry->{fieldId}, $revisionDate, ]);
|
||||
my ($metaValue) = $getMetaValue->array;
|
||||
##If that matches the current entry, we're done with this revisionDate
|
||||
next REVISIONDATE if $metaValue eq $metaEntry->{value};
|
||||
##It doesn't match, so we have to fix it.
|
||||
##Update a bad entry
|
||||
if (defined $metaValue) {
|
||||
$updateMetaValue->execute([
|
||||
@{$metaEntry}{qw/value assetId fieldId/}, $revisionDate,
|
||||
]);
|
||||
}
|
||||
##Insert a new one
|
||||
else {
|
||||
$insertMetaValue->execute([
|
||||
@{$metaEntry}{qw/assetId fieldId value/}, $revisionDate,
|
||||
]);
|
||||
}
|
||||
}
|
||||
}
|
||||
$getMeta0->finish;
|
||||
$getRevisionDates->finish;
|
||||
$getMetaValue->finish;
|
||||
$insertMetaValue->finish;
|
||||
$updateMetaValue->finish;
|
||||
$session->db->write('delete from metaData_values where revisionDate=0');
|
||||
print "DONE!\n" unless $quiet;
|
||||
}
|
||||
|
||||
|
||||
#----------------------------------------------------------------------------
|
||||
# Describe what our function does
|
||||
sub addPhotoHeightToStoryArchive {
|
||||
my $session = shift;
|
||||
print "\tAdd Photo Height to the Story Manager... " unless $quiet;
|
||||
# and here's our code
|
||||
$session->db->write(<<EOSQL);
|
||||
ALTER TABLE StoryArchive add column photoHeight INT(11);
|
||||
EOSQL
|
||||
$session->db->write(<<EOSQL);
|
||||
UPDATE StoryArchive set photoHeight=300
|
||||
EOSQL
|
||||
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;
|
||||
|
||||
print "\tUpgrading package $file\n" unless $quiet;
|
||||
# Make a storage location for the package
|
||||
my $storage = WebGUI::Storage->createTemp( $session );
|
||||
$storage->addFileFromFilesystem( $file );
|
||||
|
||||
# Import the package into the import node
|
||||
my $package = eval {
|
||||
my $node = WebGUI::Asset->getImportNode($session);
|
||||
$node->importPackage( $storage, {
|
||||
overwriteLatest => 1,
|
||||
clearPackageFlag => 1,
|
||||
setDefaultTemplate => 1,
|
||||
} );
|
||||
};
|
||||
|
||||
if ($package eq 'corrupt') {
|
||||
die "Corrupt package found in $file. Stopping upgrade.\n";
|
||||
}
|
||||
if ($@ || !defined $package) {
|
||||
die "Error during package import on $file: $@\nStopping upgrade\n.";
|
||||
}
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
#-------------------------------------------------
|
||||
sub start {
|
||||
my $configFile;
|
||||
$|=1; #disable output buffering
|
||||
GetOptions(
|
||||
'configFile=s'=>\$configFile,
|
||||
'quiet'=>\$quiet
|
||||
);
|
||||
my $session = WebGUI::Session->open($webguiRoot,$configFile);
|
||||
$session->user({userId=>3});
|
||||
my $versionTag = WebGUI::VersionTag->getWorking($session);
|
||||
$versionTag->set({name=>"Upgrade to ".$toVersion});
|
||||
return $session;
|
||||
}
|
||||
|
||||
#-------------------------------------------------
|
||||
sub finish {
|
||||
my $session = shift;
|
||||
updateTemplates($session);
|
||||
my $versionTag = WebGUI::VersionTag->getWorking($session);
|
||||
$versionTag->commit;
|
||||
$session->db->write("insert into webguiVersion values (".$session->db->quote($toVersion).",'upgrade',".time().")");
|
||||
$session->close();
|
||||
}
|
||||
|
||||
#-------------------------------------------------
|
||||
sub updateTemplates {
|
||||
my $session = shift;
|
||||
return undef unless (-d "packages-".$toVersion);
|
||||
print "\tUpdating packages.\n" unless ($quiet);
|
||||
opendir(DIR,"packages-".$toVersion);
|
||||
my @files = readdir(DIR);
|
||||
closedir(DIR);
|
||||
my $newFolder = undef;
|
||||
foreach my $file (@files) {
|
||||
next unless ($file =~ /\.wgpkg$/);
|
||||
# Fix the filename to include a path
|
||||
$file = "packages-" . $toVersion . "/" . $file;
|
||||
addPackage( $session, $file );
|
||||
}
|
||||
}
|
||||
|
||||
#vim:ft=perl
|
||||
126
docs/upgrades/upgrade_7.10.27-7.10.28.pl
Normal file
126
docs/upgrades/upgrade_7.10.27-7.10.28.pl
Normal file
|
|
@ -0,0 +1,126 @@
|
|||
#!/usr/bin/env perl
|
||||
|
||||
#-------------------------------------------------------------------
|
||||
# WebGUI is Copyright 2001-2009 Plain Black Corporation.
|
||||
#-------------------------------------------------------------------
|
||||
# Please read the legal notices (docs/legal.txt) and the license
|
||||
# (docs/license.txt) that came with this distribution before using
|
||||
# this software.
|
||||
#-------------------------------------------------------------------
|
||||
# http://www.plainblack.com info@plainblack.com
|
||||
#-------------------------------------------------------------------
|
||||
|
||||
our ($webguiRoot);
|
||||
|
||||
BEGIN {
|
||||
$webguiRoot = "../..";
|
||||
unshift (@INC, $webguiRoot."/lib");
|
||||
}
|
||||
|
||||
use strict;
|
||||
use Getopt::Long;
|
||||
use WebGUI::Session;
|
||||
use WebGUI::Storage;
|
||||
use WebGUI::Asset;
|
||||
|
||||
|
||||
my $toVersion = '7.10.28';
|
||||
my $quiet; # this line required
|
||||
|
||||
|
||||
my $session = start(); # this line required
|
||||
|
||||
# upgrade functions go here
|
||||
|
||||
finish($session); # this line required
|
||||
|
||||
|
||||
#----------------------------------------------------------------------------
|
||||
# Describe what our function does
|
||||
#sub exampleFunction {
|
||||
# my $session = shift;
|
||||
# print "\tWe're doing some stuff here that you should know about... " unless $quiet;
|
||||
# # and here's our code
|
||||
# print "DONE!\n" unless $quiet;
|
||||
#}
|
||||
|
||||
|
||||
# -------------- DO NOT EDIT BELOW THIS LINE --------------------------------
|
||||
|
||||
#----------------------------------------------------------------------------
|
||||
# Add a package to the import node
|
||||
sub addPackage {
|
||||
my $session = shift;
|
||||
my $file = shift;
|
||||
|
||||
print "\tUpgrading package $file\n" unless $quiet;
|
||||
# Make a storage location for the package
|
||||
my $storage = WebGUI::Storage->createTemp( $session );
|
||||
$storage->addFileFromFilesystem( $file );
|
||||
|
||||
# Import the package into the import node
|
||||
my $package = eval {
|
||||
my $node = WebGUI::Asset->getImportNode($session);
|
||||
$node->importPackage( $storage, {
|
||||
overwriteLatest => 1,
|
||||
clearPackageFlag => 1,
|
||||
setDefaultTemplate => 1,
|
||||
} );
|
||||
};
|
||||
|
||||
if ($package eq 'corrupt') {
|
||||
die "Corrupt package found in $file. Stopping upgrade.\n";
|
||||
}
|
||||
if ($@ || !defined $package) {
|
||||
die "Error during package import on $file: $@\nStopping upgrade\n.";
|
||||
}
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
#-------------------------------------------------
|
||||
sub start {
|
||||
my $configFile;
|
||||
$|=1; #disable output buffering
|
||||
GetOptions(
|
||||
'configFile=s'=>\$configFile,
|
||||
'quiet'=>\$quiet
|
||||
);
|
||||
if ($toVersion eq "0.0.0") {
|
||||
die "toVersion=$toVersion, aborting upgrade\n";
|
||||
}
|
||||
my $session = WebGUI::Session->open($webguiRoot,$configFile);
|
||||
$session->user({userId=>3});
|
||||
my $versionTag = WebGUI::VersionTag->getWorking($session);
|
||||
$versionTag->set({name=>"Upgrade to ".$toVersion});
|
||||
return $session;
|
||||
}
|
||||
|
||||
#-------------------------------------------------
|
||||
sub finish {
|
||||
my $session = shift;
|
||||
updateTemplates($session);
|
||||
my $versionTag = WebGUI::VersionTag->getWorking($session);
|
||||
$versionTag->commit;
|
||||
$session->db->write("insert into webguiVersion values (".$session->db->quote($toVersion).",'upgrade',".time().")");
|
||||
$session->close();
|
||||
}
|
||||
|
||||
#-------------------------------------------------
|
||||
sub updateTemplates {
|
||||
my $session = shift;
|
||||
return undef unless (-d "packages-".$toVersion);
|
||||
print "\tUpdating packages.\n" unless ($quiet);
|
||||
opendir(DIR,"packages-".$toVersion);
|
||||
my @files = readdir(DIR);
|
||||
closedir(DIR);
|
||||
my $newFolder = undef;
|
||||
foreach my $file (@files) {
|
||||
next unless ($file =~ /\.wgpkg$/);
|
||||
# Fix the filename to include a path
|
||||
$file = "packages-" . $toVersion . "/" . $file;
|
||||
addPackage( $session, $file );
|
||||
}
|
||||
}
|
||||
|
||||
#vim:ft=perl
|
||||
126
docs/upgrades/upgrade_7.10.28-7.10.29.pl
Normal file
126
docs/upgrades/upgrade_7.10.28-7.10.29.pl
Normal file
|
|
@ -0,0 +1,126 @@
|
|||
#!/usr/bin/env perl
|
||||
|
||||
#-------------------------------------------------------------------
|
||||
# WebGUI is Copyright 2001-2009 Plain Black Corporation.
|
||||
#-------------------------------------------------------------------
|
||||
# Please read the legal notices (docs/legal.txt) and the license
|
||||
# (docs/license.txt) that came with this distribution before using
|
||||
# this software.
|
||||
#-------------------------------------------------------------------
|
||||
# http://www.plainblack.com info@plainblack.com
|
||||
#-------------------------------------------------------------------
|
||||
|
||||
our ($webguiRoot);
|
||||
|
||||
BEGIN {
|
||||
$webguiRoot = "../..";
|
||||
unshift (@INC, $webguiRoot."/lib");
|
||||
}
|
||||
|
||||
use strict;
|
||||
use Getopt::Long;
|
||||
use WebGUI::Session;
|
||||
use WebGUI::Storage;
|
||||
use WebGUI::Asset;
|
||||
|
||||
|
||||
my $toVersion = '7.10.29';
|
||||
my $quiet; # this line required
|
||||
|
||||
|
||||
my $session = start(); # this line required
|
||||
|
||||
# upgrade functions go here
|
||||
|
||||
finish($session); # this line required
|
||||
|
||||
|
||||
#----------------------------------------------------------------------------
|
||||
# Describe what our function does
|
||||
#sub exampleFunction {
|
||||
# my $session = shift;
|
||||
# print "\tWe're doing some stuff here that you should know about... " unless $quiet;
|
||||
# # and here's our code
|
||||
# print "DONE!\n" unless $quiet;
|
||||
#}
|
||||
|
||||
|
||||
# -------------- DO NOT EDIT BELOW THIS LINE --------------------------------
|
||||
|
||||
#----------------------------------------------------------------------------
|
||||
# Add a package to the import node
|
||||
sub addPackage {
|
||||
my $session = shift;
|
||||
my $file = shift;
|
||||
|
||||
print "\tUpgrading package $file\n" unless $quiet;
|
||||
# Make a storage location for the package
|
||||
my $storage = WebGUI::Storage->createTemp( $session );
|
||||
$storage->addFileFromFilesystem( $file );
|
||||
|
||||
# Import the package into the import node
|
||||
my $package = eval {
|
||||
my $node = WebGUI::Asset->getImportNode($session);
|
||||
$node->importPackage( $storage, {
|
||||
overwriteLatest => 1,
|
||||
clearPackageFlag => 1,
|
||||
setDefaultTemplate => 1,
|
||||
} );
|
||||
};
|
||||
|
||||
if ($package eq 'corrupt') {
|
||||
die "Corrupt package found in $file. Stopping upgrade.\n";
|
||||
}
|
||||
if ($@ || !defined $package) {
|
||||
die "Error during package import on $file: $@\nStopping upgrade\n.";
|
||||
}
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
#-------------------------------------------------
|
||||
sub start {
|
||||
my $configFile;
|
||||
$|=1; #disable output buffering
|
||||
GetOptions(
|
||||
'configFile=s'=>\$configFile,
|
||||
'quiet'=>\$quiet
|
||||
);
|
||||
if ($toVersion eq "0.0.0") {
|
||||
die "toVersion=$toVersion, aborting upgrade\n";
|
||||
}
|
||||
my $session = WebGUI::Session->open($webguiRoot,$configFile);
|
||||
$session->user({userId=>3});
|
||||
my $versionTag = WebGUI::VersionTag->getWorking($session);
|
||||
$versionTag->set({name=>"Upgrade to ".$toVersion});
|
||||
return $session;
|
||||
}
|
||||
|
||||
#-------------------------------------------------
|
||||
sub finish {
|
||||
my $session = shift;
|
||||
updateTemplates($session);
|
||||
my $versionTag = WebGUI::VersionTag->getWorking($session);
|
||||
$versionTag->commit;
|
||||
$session->db->write("insert into webguiVersion values (".$session->db->quote($toVersion).",'upgrade',".time().")");
|
||||
$session->close();
|
||||
}
|
||||
|
||||
#-------------------------------------------------
|
||||
sub updateTemplates {
|
||||
my $session = shift;
|
||||
return undef unless (-d "packages-".$toVersion);
|
||||
print "\tUpdating packages.\n" unless ($quiet);
|
||||
opendir(DIR,"packages-".$toVersion);
|
||||
my @files = readdir(DIR);
|
||||
closedir(DIR);
|
||||
my $newFolder = undef;
|
||||
foreach my $file (@files) {
|
||||
next unless ($file =~ /\.wgpkg$/);
|
||||
# Fix the filename to include a path
|
||||
$file = "packages-" . $toVersion . "/" . $file;
|
||||
addPackage( $session, $file );
|
||||
}
|
||||
}
|
||||
|
||||
#vim:ft=perl
|
||||
190
docs/upgrades/upgrade_7.10.3-7.10.4.pl
Normal file
190
docs/upgrades/upgrade_7.10.3-7.10.4.pl
Normal file
|
|
@ -0,0 +1,190 @@
|
|||
#!/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 List::Util qw(first);
|
||||
|
||||
my $toVersion = '7.10.4';
|
||||
my $quiet; # this line required
|
||||
|
||||
|
||||
my $session = start(); # this line required
|
||||
|
||||
# upgrade functions go here
|
||||
changeTemplateHelpUrl($session);
|
||||
addForkTable($session);
|
||||
installForkCleanup($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 changeTemplateHelpUrl {
|
||||
my $session = shift;
|
||||
print "\tChange the URL for the template that displays help variables... " unless $quiet;
|
||||
# and here's our code
|
||||
my $template = WebGUI::Asset->newByDynamicClass($session, 'PBtmplHelp000000000001');
|
||||
if ($template) {
|
||||
$template->update({url => 'root/import/adminconsole/help'});
|
||||
my $rs = $template->session->db->read("select revisionDate from assetData where assetId=? and revisionDate<>?",[$template->getId, $template->get("revisionDate")]);
|
||||
while (my ($version) = $rs->array) {
|
||||
my $old = WebGUI::Asset->new($session, $template->getId, $template->get("className"), $version);
|
||||
$old->purgeRevision if defined $old;
|
||||
}
|
||||
}
|
||||
else {
|
||||
print "\n\tNO TEMPLATE FOR DISPLAYING TEMPLATE VARIABLES...";
|
||||
}
|
||||
print "DONE!\n" unless $quiet;
|
||||
}
|
||||
|
||||
#----------------------------------------------------------------------------
|
||||
# Creates a new table for tracking background processes
|
||||
sub addForkTable {
|
||||
my $session = shift;
|
||||
my $db = $session->db;
|
||||
my $sth = $db->dbh->table_info('', '', 'Fork', 'TABLE');
|
||||
return if ($sth->fetch);
|
||||
print "\tAdding Fork table..." unless $quiet;
|
||||
my $sql = q{
|
||||
CREATE TABLE Fork (
|
||||
id CHAR(22),
|
||||
userId CHAR(22),
|
||||
groupId CHAR(22),
|
||||
status LONGTEXT,
|
||||
error TEXT,
|
||||
startTime BIGINT(20),
|
||||
endTime BIGINT(20),
|
||||
finished BOOLEAN DEFAULT FALSE,
|
||||
latch BOOLEAN DEFAULT FALSE,
|
||||
|
||||
PRIMARY KEY(id)
|
||||
);
|
||||
};
|
||||
$db->write($sql);
|
||||
print "DONE!\n" unless $quiet;
|
||||
}
|
||||
|
||||
#----------------------------------------------------------------------------
|
||||
# install a workflow to clean up old background processes
|
||||
sub installForkCleanup {
|
||||
my $session = shift;
|
||||
print "\tInstalling Fork Cleanup workflow..." unless $quiet;
|
||||
my $class = 'WebGUI::Workflow::Activity::RemoveOldForks';
|
||||
$session->config->addToArray('workflowActivities/None', $class);
|
||||
my $wf = WebGUI::Workflow->new($session, 'pbworkflow000000000001');
|
||||
my $a = first { ref $_ eq $class } @{ $wf->getActivities };
|
||||
unless ($a) {
|
||||
$a = $wf->addActivity($class);
|
||||
$a->set(title => 'Remove Old Forks');
|
||||
};
|
||||
print "DONE!\n" unless $quiet;
|
||||
}
|
||||
|
||||
|
||||
# -------------- DO NOT EDIT BELOW THIS LINE --------------------------------
|
||||
|
||||
#----------------------------------------------------------------------------
|
||||
# Add a package to the import node
|
||||
sub addPackage {
|
||||
my $session = shift;
|
||||
my $file = shift;
|
||||
|
||||
print "\tUpgrading package $file\n" unless $quiet;
|
||||
# Make a storage location for the package
|
||||
my $storage = WebGUI::Storage->createTemp( $session );
|
||||
$storage->addFileFromFilesystem( $file );
|
||||
|
||||
# Import the package into the import node
|
||||
my $package = eval {
|
||||
my $node = WebGUI::Asset->getImportNode($session);
|
||||
$node->importPackage( $storage, {
|
||||
overwriteLatest => 1,
|
||||
clearPackageFlag => 1,
|
||||
setDefaultTemplate => 1,
|
||||
} );
|
||||
};
|
||||
|
||||
if ($package eq 'corrupt') {
|
||||
die "Corrupt package found in $file. Stopping upgrade.\n";
|
||||
}
|
||||
if ($@ || !defined $package) {
|
||||
die "Error during package import on $file: $@\nStopping upgrade\n.";
|
||||
}
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
#-------------------------------------------------
|
||||
sub start {
|
||||
my $configFile;
|
||||
$|=1; #disable output buffering
|
||||
GetOptions(
|
||||
'configFile=s'=>\$configFile,
|
||||
'quiet'=>\$quiet
|
||||
);
|
||||
my $session = WebGUI::Session->open($webguiRoot,$configFile);
|
||||
$session->user({userId=>3});
|
||||
my $versionTag = WebGUI::VersionTag->getWorking($session);
|
||||
$versionTag->set({name=>"Upgrade to ".$toVersion});
|
||||
return $session;
|
||||
}
|
||||
|
||||
#-------------------------------------------------
|
||||
sub finish {
|
||||
my $session = shift;
|
||||
updateTemplates($session);
|
||||
my $versionTag = WebGUI::VersionTag->getWorking($session);
|
||||
$versionTag->commit;
|
||||
$session->db->write("insert into webguiVersion values (".$session->db->quote($toVersion).",'upgrade',".time().")");
|
||||
$session->close();
|
||||
}
|
||||
|
||||
#-------------------------------------------------
|
||||
sub updateTemplates {
|
||||
my $session = shift;
|
||||
return undef unless (-d "packages-".$toVersion);
|
||||
print "\tUpdating packages.\n" unless ($quiet);
|
||||
opendir(DIR,"packages-".$toVersion);
|
||||
my @files = readdir(DIR);
|
||||
closedir(DIR);
|
||||
my $newFolder = undef;
|
||||
foreach my $file (@files) {
|
||||
next unless ($file =~ /\.wgpkg$/);
|
||||
# Fix the filename to include a path
|
||||
$file = "packages-" . $toVersion . "/" . $file;
|
||||
addPackage( $session, $file );
|
||||
}
|
||||
}
|
||||
|
||||
#vim:ft=perl
|
||||
123
docs/upgrades/upgrade_7.10.4-7.10.5.pl
Normal file
123
docs/upgrades/upgrade_7.10.4-7.10.5.pl
Normal file
|
|
@ -0,0 +1,123 @@
|
|||
#!/usr/bin/env perl
|
||||
|
||||
#-------------------------------------------------------------------
|
||||
# WebGUI is Copyright 2001-2009 Plain Black Corporation.
|
||||
#-------------------------------------------------------------------
|
||||
# Please read the legal notices (docs/legal.txt) and the license
|
||||
# (docs/license.txt) that came with this distribution before using
|
||||
# this software.
|
||||
#-------------------------------------------------------------------
|
||||
# http://www.plainblack.com info@plainblack.com
|
||||
#-------------------------------------------------------------------
|
||||
|
||||
our ($webguiRoot);
|
||||
|
||||
BEGIN {
|
||||
$webguiRoot = "../..";
|
||||
unshift (@INC, $webguiRoot."/lib");
|
||||
}
|
||||
|
||||
use strict;
|
||||
use Getopt::Long;
|
||||
use WebGUI::Session;
|
||||
use WebGUI::Storage;
|
||||
use WebGUI::Asset;
|
||||
|
||||
|
||||
my $toVersion = '7.10.5';
|
||||
my $quiet; # this line required
|
||||
|
||||
|
||||
my $session = start(); # this line required
|
||||
|
||||
# upgrade functions go here
|
||||
|
||||
finish($session); # this line required
|
||||
|
||||
|
||||
#----------------------------------------------------------------------------
|
||||
# Describe what our function does
|
||||
#sub exampleFunction {
|
||||
# my $session = shift;
|
||||
# print "\tWe're doing some stuff here that you should know about... " unless $quiet;
|
||||
# # and here's our code
|
||||
# print "DONE!\n" unless $quiet;
|
||||
#}
|
||||
|
||||
|
||||
# -------------- DO NOT EDIT BELOW THIS LINE --------------------------------
|
||||
|
||||
#----------------------------------------------------------------------------
|
||||
# Add a package to the import node
|
||||
sub addPackage {
|
||||
my $session = shift;
|
||||
my $file = shift;
|
||||
|
||||
print "\tUpgrading package $file\n" unless $quiet;
|
||||
# Make a storage location for the package
|
||||
my $storage = WebGUI::Storage->createTemp( $session );
|
||||
$storage->addFileFromFilesystem( $file );
|
||||
|
||||
# Import the package into the import node
|
||||
my $package = eval {
|
||||
my $node = WebGUI::Asset->getImportNode($session);
|
||||
$node->importPackage( $storage, {
|
||||
overwriteLatest => 1,
|
||||
clearPackageFlag => 1,
|
||||
setDefaultTemplate => 1,
|
||||
} );
|
||||
};
|
||||
|
||||
if ($package eq 'corrupt') {
|
||||
die "Corrupt package found in $file. Stopping upgrade.\n";
|
||||
}
|
||||
if ($@ || !defined $package) {
|
||||
die "Error during package import on $file: $@\nStopping upgrade\n.";
|
||||
}
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
#-------------------------------------------------
|
||||
sub start {
|
||||
my $configFile;
|
||||
$|=1; #disable output buffering
|
||||
GetOptions(
|
||||
'configFile=s'=>\$configFile,
|
||||
'quiet'=>\$quiet
|
||||
);
|
||||
my $session = WebGUI::Session->open($webguiRoot,$configFile);
|
||||
$session->user({userId=>3});
|
||||
my $versionTag = WebGUI::VersionTag->getWorking($session);
|
||||
$versionTag->set({name=>"Upgrade to ".$toVersion});
|
||||
return $session;
|
||||
}
|
||||
|
||||
#-------------------------------------------------
|
||||
sub finish {
|
||||
my $session = shift;
|
||||
updateTemplates($session);
|
||||
my $versionTag = WebGUI::VersionTag->getWorking($session);
|
||||
$versionTag->commit;
|
||||
$session->db->write("insert into webguiVersion values (".$session->db->quote($toVersion).",'upgrade',".time().")");
|
||||
$session->close();
|
||||
}
|
||||
|
||||
#-------------------------------------------------
|
||||
sub updateTemplates {
|
||||
my $session = shift;
|
||||
return undef unless (-d "packages-".$toVersion);
|
||||
print "\tUpdating packages.\n" unless ($quiet);
|
||||
opendir(DIR,"packages-".$toVersion);
|
||||
my @files = readdir(DIR);
|
||||
closedir(DIR);
|
||||
my $newFolder = undef;
|
||||
foreach my $file (@files) {
|
||||
next unless ($file =~ /\.wgpkg$/);
|
||||
# Fix the filename to include a path
|
||||
$file = "packages-" . $toVersion . "/" . $file;
|
||||
addPackage( $session, $file );
|
||||
}
|
||||
}
|
||||
|
||||
#vim:ft=perl
|
||||
144
docs/upgrades/upgrade_7.10.5-7.10.6.pl
Normal file
144
docs/upgrades/upgrade_7.10.5-7.10.6.pl
Normal file
|
|
@ -0,0 +1,144 @@
|
|||
#!/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;
|
||||
|
||||
my $toVersion = '7.10.6';
|
||||
my $quiet; # this line required
|
||||
|
||||
|
||||
my $session = start(); # this line required
|
||||
|
||||
# upgrade functions go here
|
||||
addCollaborationSubscriptionWorkflow($session);
|
||||
|
||||
finish($session); # this line required
|
||||
|
||||
|
||||
#----------------------------------------------------------------------------
|
||||
sub addCollaborationSubscriptionWorkflow {
|
||||
my $session = shift;
|
||||
print "\tAdd Collaboration System subscriber validation workflow... " unless $quiet;
|
||||
# and here's our code
|
||||
$session->config->addToArray('workflowActivities/WebGUI::Asset', qw/WebGUI::Workflow::Activity::UpdateAssetSubscribers/);
|
||||
my $workflow = WebGUI::Workflow->create($session,
|
||||
{
|
||||
mode => 'parallel',
|
||||
enabled => 1,
|
||||
title => 'Update CS Subscription members',
|
||||
description => "This workflow will be run whenever the viewing permissions are changed on an Asset. It will update the members of the subscription group, and remove members who can no longer view the Asset.",
|
||||
type => 'WebGUI::Asset',
|
||||
},
|
||||
'xR-_GRRbjBojgLsFx3dEMA'
|
||||
);
|
||||
$workflow->addActivity('WebGUI::Workflow::Activity::UpdateAssetSubscribers');
|
||||
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;
|
||||
|
||||
print "\tUpgrading package $file\n" unless $quiet;
|
||||
# Make a storage location for the package
|
||||
my $storage = WebGUI::Storage->createTemp( $session );
|
||||
$storage->addFileFromFilesystem( $file );
|
||||
|
||||
# Import the package into the import node
|
||||
my $package = eval {
|
||||
my $node = WebGUI::Asset->getImportNode($session);
|
||||
$node->importPackage( $storage, {
|
||||
overwriteLatest => 1,
|
||||
clearPackageFlag => 1,
|
||||
setDefaultTemplate => 1,
|
||||
} );
|
||||
};
|
||||
|
||||
if ($package eq 'corrupt') {
|
||||
die "Corrupt package found in $file. Stopping upgrade.\n";
|
||||
}
|
||||
if ($@ || !defined $package) {
|
||||
die "Error during package import on $file: $@\nStopping upgrade\n.";
|
||||
}
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
#-------------------------------------------------
|
||||
sub start {
|
||||
my $configFile;
|
||||
$|=1; #disable output buffering
|
||||
GetOptions(
|
||||
'configFile=s'=>\$configFile,
|
||||
'quiet'=>\$quiet
|
||||
);
|
||||
my $session = WebGUI::Session->open($webguiRoot,$configFile);
|
||||
$session->user({userId=>3});
|
||||
my $versionTag = WebGUI::VersionTag->getWorking($session);
|
||||
$versionTag->set({name=>"Upgrade to ".$toVersion});
|
||||
return $session;
|
||||
}
|
||||
|
||||
#-------------------------------------------------
|
||||
sub finish {
|
||||
my $session = shift;
|
||||
updateTemplates($session);
|
||||
my $versionTag = WebGUI::VersionTag->getWorking($session);
|
||||
$versionTag->commit;
|
||||
$session->db->write("insert into webguiVersion values (".$session->db->quote($toVersion).",'upgrade',".time().")");
|
||||
$session->close();
|
||||
}
|
||||
|
||||
#-------------------------------------------------
|
||||
sub updateTemplates {
|
||||
my $session = shift;
|
||||
return undef unless (-d "packages-".$toVersion);
|
||||
print "\tUpdating packages.\n" unless ($quiet);
|
||||
opendir(DIR,"packages-".$toVersion);
|
||||
my @files = readdir(DIR);
|
||||
closedir(DIR);
|
||||
my $newFolder = undef;
|
||||
foreach my $file (@files) {
|
||||
next unless ($file =~ /\.wgpkg$/);
|
||||
# Fix the filename to include a path
|
||||
$file = "packages-" . $toVersion . "/" . $file;
|
||||
addPackage( $session, $file );
|
||||
}
|
||||
}
|
||||
|
||||
#vim:ft=perl
|
||||
163
docs/upgrades/upgrade_7.10.6-7.10.7.pl
Normal file
163
docs/upgrades/upgrade_7.10.6-7.10.7.pl
Normal file
|
|
@ -0,0 +1,163 @@
|
|||
#!/usr/bin/env perl
|
||||
|
||||
#-------------------------------------------------------------------
|
||||
# WebGUI is Copyright 2001-2009 Plain Black Corporation.
|
||||
#-------------------------------------------------------------------
|
||||
# Please read the legal notices (docs/legal.txt) and the license
|
||||
# (docs/license.txt) that came with this distribution before using
|
||||
# this software.
|
||||
#-------------------------------------------------------------------
|
||||
# http://www.plainblack.com info@plainblack.com
|
||||
#-------------------------------------------------------------------
|
||||
|
||||
our ($webguiRoot);
|
||||
|
||||
BEGIN {
|
||||
$webguiRoot = "../..";
|
||||
unshift (@INC, $webguiRoot."/lib");
|
||||
}
|
||||
|
||||
use strict;
|
||||
use Getopt::Long;
|
||||
use WebGUI::Session;
|
||||
use WebGUI::Storage;
|
||||
use WebGUI::Asset;
|
||||
|
||||
|
||||
my $toVersion = '7.10.7';
|
||||
my $quiet; # this line required
|
||||
|
||||
|
||||
my $session = start(); # this line required
|
||||
|
||||
# upgrade functions go here
|
||||
addEmailIndexToProfile( $session );
|
||||
addIndecesToUserLoginLog($session);
|
||||
addSSOOptionToConfigs($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 an index to the userProfileData table for email lookups
|
||||
sub addSSOOptionToConfigs {
|
||||
my $session = shift;
|
||||
print "\tAdding SSO flag to config file to enable the feature... " unless $quiet;
|
||||
$session->config->set('enableSimpleSSO', 0);
|
||||
print "DONE!\n" unless $quiet;
|
||||
}
|
||||
|
||||
#----------------------------------------------------------------------------
|
||||
# Add an index to the userProfileData table for email lookups
|
||||
sub addEmailIndexToProfile {
|
||||
my $session = shift;
|
||||
print "\tAdding index to email column on userProfileData table... " unless $quiet;
|
||||
# and here's our code
|
||||
$session->db->write( "ALTER TABLE userProfileData ADD INDEX email ( email )" );
|
||||
print "DONE!\n" unless $quiet;
|
||||
}
|
||||
|
||||
#----------------------------------------------------------------------------
|
||||
sub addIndecesToUserLoginLog {
|
||||
my $session = shift;
|
||||
print "\tAdd indeces to userLoginLog to speed cleanup... " unless $quiet;
|
||||
# and here's our code
|
||||
my $sth = $session->db->read('SHOW CREATE TABLE userLoginLog');
|
||||
my ($field,$stmt) = $sth->array;
|
||||
$sth->finish;
|
||||
unless ($stmt =~ m/KEY `userId`/i) {
|
||||
$session->db->write("ALTER TABLE userLoginLog ADD INDEX userId (userId)");
|
||||
}
|
||||
unless ($stmt =~ m/KEY `timeStamp`/i) {
|
||||
$session->db->write("ALTER TABLE userLoginLog ADD INDEX timeStamp (timeStamp)");
|
||||
}
|
||||
|
||||
print "DONE!\n" unless $quiet;
|
||||
}
|
||||
|
||||
|
||||
# -------------- DO NOT EDIT BELOW THIS LINE --------------------------------
|
||||
|
||||
#----------------------------------------------------------------------------
|
||||
# Add a package to the import node
|
||||
sub addPackage {
|
||||
my $session = shift;
|
||||
my $file = shift;
|
||||
|
||||
print "\tUpgrading package $file\n" unless $quiet;
|
||||
# Make a storage location for the package
|
||||
my $storage = WebGUI::Storage->createTemp( $session );
|
||||
$storage->addFileFromFilesystem( $file );
|
||||
|
||||
# Import the package into the import node
|
||||
my $package = eval {
|
||||
my $node = WebGUI::Asset->getImportNode($session);
|
||||
$node->importPackage( $storage, {
|
||||
overwriteLatest => 1,
|
||||
clearPackageFlag => 1,
|
||||
setDefaultTemplate => 1,
|
||||
} );
|
||||
};
|
||||
|
||||
if ($package eq 'corrupt') {
|
||||
die "Corrupt package found in $file. Stopping upgrade.\n";
|
||||
}
|
||||
if ($@ || !defined $package) {
|
||||
die "Error during package import on $file: $@\nStopping upgrade\n.";
|
||||
}
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
#-------------------------------------------------
|
||||
sub start {
|
||||
my $configFile;
|
||||
$|=1; #disable output buffering
|
||||
GetOptions(
|
||||
'configFile=s'=>\$configFile,
|
||||
'quiet'=>\$quiet
|
||||
);
|
||||
my $session = WebGUI::Session->open($webguiRoot,$configFile);
|
||||
$session->user({userId=>3});
|
||||
my $versionTag = WebGUI::VersionTag->getWorking($session);
|
||||
$versionTag->set({name=>"Upgrade to ".$toVersion});
|
||||
return $session;
|
||||
}
|
||||
|
||||
#-------------------------------------------------
|
||||
sub finish {
|
||||
my $session = shift;
|
||||
updateTemplates($session);
|
||||
my $versionTag = WebGUI::VersionTag->getWorking($session);
|
||||
$versionTag->commit;
|
||||
$session->db->write("insert into webguiVersion values (".$session->db->quote($toVersion).",'upgrade',".time().")");
|
||||
$session->close();
|
||||
}
|
||||
|
||||
#-------------------------------------------------
|
||||
sub updateTemplates {
|
||||
my $session = shift;
|
||||
return undef unless (-d "packages-".$toVersion);
|
||||
print "\tUpdating packages.\n" unless ($quiet);
|
||||
opendir(DIR,"packages-".$toVersion);
|
||||
my @files = readdir(DIR);
|
||||
closedir(DIR);
|
||||
my $newFolder = undef;
|
||||
foreach my $file (@files) {
|
||||
next unless ($file =~ /\.wgpkg$/);
|
||||
# Fix the filename to include a path
|
||||
$file = "packages-" . $toVersion . "/" . $file;
|
||||
addPackage( $session, $file );
|
||||
}
|
||||
}
|
||||
|
||||
#vim:ft=perl
|
||||
123
docs/upgrades/upgrade_7.10.7-7.10.8.pl
Normal file
123
docs/upgrades/upgrade_7.10.7-7.10.8.pl
Normal file
|
|
@ -0,0 +1,123 @@
|
|||
#!/usr/bin/env perl
|
||||
|
||||
#-------------------------------------------------------------------
|
||||
# WebGUI is Copyright 2001-2009 Plain Black Corporation.
|
||||
#-------------------------------------------------------------------
|
||||
# Please read the legal notices (docs/legal.txt) and the license
|
||||
# (docs/license.txt) that came with this distribution before using
|
||||
# this software.
|
||||
#-------------------------------------------------------------------
|
||||
# http://www.plainblack.com info@plainblack.com
|
||||
#-------------------------------------------------------------------
|
||||
|
||||
our ($webguiRoot);
|
||||
|
||||
BEGIN {
|
||||
$webguiRoot = "../..";
|
||||
unshift (@INC, $webguiRoot."/lib");
|
||||
}
|
||||
|
||||
use strict;
|
||||
use Getopt::Long;
|
||||
use WebGUI::Session;
|
||||
use WebGUI::Storage;
|
||||
use WebGUI::Asset;
|
||||
|
||||
|
||||
my $toVersion = '7.10.8';
|
||||
my $quiet; # this line required
|
||||
|
||||
|
||||
my $session = start(); # this line required
|
||||
|
||||
# upgrade functions go here
|
||||
|
||||
finish($session); # this line required
|
||||
|
||||
|
||||
#----------------------------------------------------------------------------
|
||||
# Describe what our function does
|
||||
#sub exampleFunction {
|
||||
# my $session = shift;
|
||||
# print "\tWe're doing some stuff here that you should know about... " unless $quiet;
|
||||
# # and here's our code
|
||||
# print "DONE!\n" unless $quiet;
|
||||
#}
|
||||
|
||||
|
||||
# -------------- DO NOT EDIT BELOW THIS LINE --------------------------------
|
||||
|
||||
#----------------------------------------------------------------------------
|
||||
# Add a package to the import node
|
||||
sub addPackage {
|
||||
my $session = shift;
|
||||
my $file = shift;
|
||||
|
||||
print "\tUpgrading package $file\n" unless $quiet;
|
||||
# Make a storage location for the package
|
||||
my $storage = WebGUI::Storage->createTemp( $session );
|
||||
$storage->addFileFromFilesystem( $file );
|
||||
|
||||
# Import the package into the import node
|
||||
my $package = eval {
|
||||
my $node = WebGUI::Asset->getImportNode($session);
|
||||
$node->importPackage( $storage, {
|
||||
overwriteLatest => 1,
|
||||
clearPackageFlag => 1,
|
||||
setDefaultTemplate => 1,
|
||||
} );
|
||||
};
|
||||
|
||||
if ($package eq 'corrupt') {
|
||||
die "Corrupt package found in $file. Stopping upgrade.\n";
|
||||
}
|
||||
if ($@ || !defined $package) {
|
||||
die "Error during package import on $file: $@\nStopping upgrade\n.";
|
||||
}
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
#-------------------------------------------------
|
||||
sub start {
|
||||
my $configFile;
|
||||
$|=1; #disable output buffering
|
||||
GetOptions(
|
||||
'configFile=s'=>\$configFile,
|
||||
'quiet'=>\$quiet
|
||||
);
|
||||
my $session = WebGUI::Session->open($webguiRoot,$configFile);
|
||||
$session->user({userId=>3});
|
||||
my $versionTag = WebGUI::VersionTag->getWorking($session);
|
||||
$versionTag->set({name=>"Upgrade to ".$toVersion});
|
||||
return $session;
|
||||
}
|
||||
|
||||
#-------------------------------------------------
|
||||
sub finish {
|
||||
my $session = shift;
|
||||
updateTemplates($session);
|
||||
my $versionTag = WebGUI::VersionTag->getWorking($session);
|
||||
$versionTag->commit;
|
||||
$session->db->write("insert into webguiVersion values (".$session->db->quote($toVersion).",'upgrade',".time().")");
|
||||
$session->close();
|
||||
}
|
||||
|
||||
#-------------------------------------------------
|
||||
sub updateTemplates {
|
||||
my $session = shift;
|
||||
return undef unless (-d "packages-".$toVersion);
|
||||
print "\tUpdating packages.\n" unless ($quiet);
|
||||
opendir(DIR,"packages-".$toVersion);
|
||||
my @files = readdir(DIR);
|
||||
closedir(DIR);
|
||||
my $newFolder = undef;
|
||||
foreach my $file (@files) {
|
||||
next unless ($file =~ /\.wgpkg$/);
|
||||
# Fix the filename to include a path
|
||||
$file = "packages-" . $toVersion . "/" . $file;
|
||||
addPackage( $session, $file );
|
||||
}
|
||||
}
|
||||
|
||||
#vim:ft=perl
|
||||
123
docs/upgrades/upgrade_7.10.8-7.10.9.pl
Normal file
123
docs/upgrades/upgrade_7.10.8-7.10.9.pl
Normal file
|
|
@ -0,0 +1,123 @@
|
|||
#!/usr/bin/env perl
|
||||
|
||||
#-------------------------------------------------------------------
|
||||
# WebGUI is Copyright 2001-2009 Plain Black Corporation.
|
||||
#-------------------------------------------------------------------
|
||||
# Please read the legal notices (docs/legal.txt) and the license
|
||||
# (docs/license.txt) that came with this distribution before using
|
||||
# this software.
|
||||
#-------------------------------------------------------------------
|
||||
# http://www.plainblack.com info@plainblack.com
|
||||
#-------------------------------------------------------------------
|
||||
|
||||
our ($webguiRoot);
|
||||
|
||||
BEGIN {
|
||||
$webguiRoot = "../..";
|
||||
unshift (@INC, $webguiRoot."/lib");
|
||||
}
|
||||
|
||||
use strict;
|
||||
use Getopt::Long;
|
||||
use WebGUI::Session;
|
||||
use WebGUI::Storage;
|
||||
use WebGUI::Asset;
|
||||
|
||||
|
||||
my $toVersion = '7.10.9';
|
||||
my $quiet; # this line required
|
||||
|
||||
|
||||
my $session = start(); # this line required
|
||||
|
||||
# upgrade functions go here
|
||||
|
||||
finish($session); # this line required
|
||||
|
||||
|
||||
#----------------------------------------------------------------------------
|
||||
# Describe what our function does
|
||||
#sub exampleFunction {
|
||||
# my $session = shift;
|
||||
# print "\tWe're doing some stuff here that you should know about... " unless $quiet;
|
||||
# # and here's our code
|
||||
# print "DONE!\n" unless $quiet;
|
||||
#}
|
||||
|
||||
|
||||
# -------------- DO NOT EDIT BELOW THIS LINE --------------------------------
|
||||
|
||||
#----------------------------------------------------------------------------
|
||||
# Add a package to the import node
|
||||
sub addPackage {
|
||||
my $session = shift;
|
||||
my $file = shift;
|
||||
|
||||
print "\tUpgrading package $file\n" unless $quiet;
|
||||
# Make a storage location for the package
|
||||
my $storage = WebGUI::Storage->createTemp( $session );
|
||||
$storage->addFileFromFilesystem( $file );
|
||||
|
||||
# Import the package into the import node
|
||||
my $package = eval {
|
||||
my $node = WebGUI::Asset->getImportNode($session);
|
||||
$node->importPackage( $storage, {
|
||||
overwriteLatest => 1,
|
||||
clearPackageFlag => 1,
|
||||
setDefaultTemplate => 1,
|
||||
} );
|
||||
};
|
||||
|
||||
if ($package eq 'corrupt') {
|
||||
die "Corrupt package found in $file. Stopping upgrade.\n";
|
||||
}
|
||||
if ($@ || !defined $package) {
|
||||
die "Error during package import on $file: $@\nStopping upgrade\n.";
|
||||
}
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
#-------------------------------------------------
|
||||
sub start {
|
||||
my $configFile;
|
||||
$|=1; #disable output buffering
|
||||
GetOptions(
|
||||
'configFile=s'=>\$configFile,
|
||||
'quiet'=>\$quiet
|
||||
);
|
||||
my $session = WebGUI::Session->open($webguiRoot,$configFile);
|
||||
$session->user({userId=>3});
|
||||
my $versionTag = WebGUI::VersionTag->getWorking($session);
|
||||
$versionTag->set({name=>"Upgrade to ".$toVersion});
|
||||
return $session;
|
||||
}
|
||||
|
||||
#-------------------------------------------------
|
||||
sub finish {
|
||||
my $session = shift;
|
||||
updateTemplates($session);
|
||||
my $versionTag = WebGUI::VersionTag->getWorking($session);
|
||||
$versionTag->commit;
|
||||
$session->db->write("insert into webguiVersion values (".$session->db->quote($toVersion).",'upgrade',".time().")");
|
||||
$session->close();
|
||||
}
|
||||
|
||||
#-------------------------------------------------
|
||||
sub updateTemplates {
|
||||
my $session = shift;
|
||||
return undef unless (-d "packages-".$toVersion);
|
||||
print "\tUpdating packages.\n" unless ($quiet);
|
||||
opendir(DIR,"packages-".$toVersion);
|
||||
my @files = readdir(DIR);
|
||||
closedir(DIR);
|
||||
my $newFolder = undef;
|
||||
foreach my $file (@files) {
|
||||
next unless ($file =~ /\.wgpkg$/);
|
||||
# Fix the filename to include a path
|
||||
$file = "packages-" . $toVersion . "/" . $file;
|
||||
addPackage( $session, $file );
|
||||
}
|
||||
}
|
||||
|
||||
#vim:ft=perl
|
||||
170
docs/upgrades/upgrade_7.10.9-7.10.10.pl
Normal file
170
docs/upgrades/upgrade_7.10.9-7.10.10.pl
Normal file
|
|
@ -0,0 +1,170 @@
|
|||
#!/usr/bin/env perl
|
||||
|
||||
#-------------------------------------------------------------------
|
||||
# WebGUI is Copyright 2001-2009 Plain Black Corporation.
|
||||
#-------------------------------------------------------------------
|
||||
# Please read the legal notices (docs/legal.txt) and the license
|
||||
# (docs/license.txt) that came with this distribution before using
|
||||
# this software.
|
||||
#-------------------------------------------------------------------
|
||||
# http://www.plainblack.com info@plainblack.com
|
||||
#-------------------------------------------------------------------
|
||||
|
||||
our ($webguiRoot);
|
||||
|
||||
BEGIN {
|
||||
$webguiRoot = "../..";
|
||||
unshift (@INC, $webguiRoot."/lib");
|
||||
}
|
||||
|
||||
use strict;
|
||||
use Getopt::Long;
|
||||
use WebGUI::Session;
|
||||
use WebGUI::Storage;
|
||||
use WebGUI::Asset;
|
||||
|
||||
|
||||
my $toVersion = '7.10.10';
|
||||
my $quiet; # this line required
|
||||
|
||||
|
||||
my $session = start(); # this line required
|
||||
|
||||
# upgrade functions go here
|
||||
convertCsMailInterval($session);
|
||||
addVersioningToMetadata($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 convertCsMailInterval {
|
||||
my $session = shift;
|
||||
print "\tConvert the getMailInterval from seconds to enumeration... " unless $quiet;
|
||||
# and here's our code
|
||||
$session->db->write('alter table Collaboration modify column getMailInterval char(64)');
|
||||
my $get_row = $session->db->read('select assetId, revisionDate, getMailInterval from Collaboration');
|
||||
my $change_row = $session->db->prepare('update Collaboration set getMailInterval=? where assetId=? and revisionDate=?');
|
||||
while (my ($assetId, $revisionDate, $seconds ) = $get_row->array) {
|
||||
my $interval;
|
||||
if ($seconds <= 60) { $interval = 'every minute'; }
|
||||
elsif ($seconds <= 120) { $interval = 'every other minute'; }
|
||||
elsif ($seconds <= 300) { $interval = 'every 5 minutes'; }
|
||||
elsif ($seconds <= 600) { $interval = 'every 10 minutes'; }
|
||||
elsif ($seconds <= 900) { $interval = 'every 15 minutes'; }
|
||||
elsif ($seconds <= 1200) { $interval = 'every 20 minutes'; }
|
||||
elsif ($seconds <= 1800) { $interval = 'every 30 minutes'; }
|
||||
elsif ($seconds <= 3600) { $interval = 'every hour'; }
|
||||
elsif ($seconds <= 7200) { $interval = 'every other hour'; }
|
||||
else { $interval = 'once per day'; }
|
||||
$change_row->execute([$interval, $assetId, $revisionDate]);
|
||||
}
|
||||
$get_row->finish;
|
||||
$change_row->finish;
|
||||
print "DONE!\n" unless $quiet;
|
||||
}
|
||||
|
||||
sub addVersioningToMetadata {
|
||||
my $session = shift;
|
||||
print "\tAltering metadata tables for versioning..." unless $quiet;
|
||||
my $db = $session->db;
|
||||
$db->write(q{
|
||||
alter table metaData_values
|
||||
add column revisionDate bigint,
|
||||
drop primary key,
|
||||
add primary key (fieldId, assetId, revisionDate);
|
||||
});
|
||||
$db->write(q{
|
||||
create table metaData_classes (
|
||||
className char(255),
|
||||
fieldId char(22)
|
||||
);
|
||||
});
|
||||
print "DONE!\n" unless $quiet;
|
||||
}
|
||||
|
||||
|
||||
# -------------- DO NOT EDIT BELOW THIS LINE --------------------------------
|
||||
|
||||
#----------------------------------------------------------------------------
|
||||
# Add a package to the import node
|
||||
sub addPackage {
|
||||
my $session = shift;
|
||||
my $file = shift;
|
||||
|
||||
print "\tUpgrading package $file\n" unless $quiet;
|
||||
# Make a storage location for the package
|
||||
my $storage = WebGUI::Storage->createTemp( $session );
|
||||
$storage->addFileFromFilesystem( $file );
|
||||
|
||||
# Import the package into the import node
|
||||
my $package = eval {
|
||||
my $node = WebGUI::Asset->getImportNode($session);
|
||||
$node->importPackage( $storage, {
|
||||
overwriteLatest => 1,
|
||||
clearPackageFlag => 1,
|
||||
setDefaultTemplate => 1,
|
||||
} );
|
||||
};
|
||||
|
||||
if ($package eq 'corrupt') {
|
||||
die "Corrupt package found in $file. Stopping upgrade.\n";
|
||||
}
|
||||
if ($@ || !defined $package) {
|
||||
die "Error during package import on $file: $@\nStopping upgrade\n.";
|
||||
}
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
#-------------------------------------------------
|
||||
sub start {
|
||||
my $configFile;
|
||||
$|=1; #disable output buffering
|
||||
GetOptions(
|
||||
'configFile=s'=>\$configFile,
|
||||
'quiet'=>\$quiet
|
||||
);
|
||||
my $session = WebGUI::Session->open($webguiRoot,$configFile);
|
||||
$session->user({userId=>3});
|
||||
my $versionTag = WebGUI::VersionTag->getWorking($session);
|
||||
$versionTag->set({name=>"Upgrade to ".$toVersion});
|
||||
return $session;
|
||||
}
|
||||
|
||||
#-------------------------------------------------
|
||||
sub finish {
|
||||
my $session = shift;
|
||||
updateTemplates($session);
|
||||
my $versionTag = WebGUI::VersionTag->getWorking($session);
|
||||
$versionTag->commit;
|
||||
$session->db->write("insert into webguiVersion values (".$session->db->quote($toVersion).",'upgrade',".time().")");
|
||||
$session->close();
|
||||
}
|
||||
|
||||
#-------------------------------------------------
|
||||
sub updateTemplates {
|
||||
my $session = shift;
|
||||
return undef unless (-d "packages-".$toVersion);
|
||||
print "\tUpdating packages.\n" unless ($quiet);
|
||||
opendir(DIR,"packages-".$toVersion);
|
||||
my @files = readdir(DIR);
|
||||
closedir(DIR);
|
||||
my $newFolder = undef;
|
||||
foreach my $file (@files) {
|
||||
next unless ($file =~ /\.wgpkg$/);
|
||||
# Fix the filename to include a path
|
||||
$file = "packages-" . $toVersion . "/" . $file;
|
||||
addPackage( $session, $file );
|
||||
}
|
||||
}
|
||||
|
||||
#vim:ft=perl
|
||||
Some files were not shown because too many files have changed in this diff Show more
Loading…
Add table
Add a link
Reference in a new issue