PowerPac v15.50 (NEW FLAGSHIP Version)

Last edited: May 18, 2024 - v15.50
PowerPac v15.50 is now available for download.
Last version supporting older browsers is v15.322.1:
https://pgsoftwaretools.com/toolbook/phpLibrary/attachments/Install_PowerPac_v15.322.1.zip
To get the PowerPac, download a trial version, or learn of its features and capabilities, please visit:
https://pgsoftwaretools.com/index.html#PowerPac
Changes to date:
PowerPac v15.50 is now available for download.
Last version supporting older browsers is v15.322.1:
https://pgsoftwaretools.com/toolbook/phpLibrary/attachments/Install_PowerPac_v15.322.1.zip
To get the PowerPac, download a trial version, or learn of its features and capabilities, please visit:
https://pgsoftwaretools.com/index.html#PowerPac
Changes to date:
- The use of Adobe Flash in your exports can be completely disabled.
Simply check the the item shown below in the PowerPac menu.
NOTE: This has been changed to the default is unchecked and means the Flash player functions will NOT be installed. Checking the menu item enables Flash. This is the opposite of the initial v15 beta release.
Once checked, no Adobe Flash-related functions will be available in the Actions Editor. Media players will use native HTML5 to play video and audio. This effectively detaches your content from the need to have Flash loaded for any reason. (See note below.)- NOTE: You will still have to manually remove the Flash functions from your actions and change them to HTML5 media player functions instead. You will also have to convert SWF and FLV files to some other format (e.g.: mp4).
Adobe Inc. has announced the end of life for the Flash Player and no longer support it by the end of 2020. Most browsers may or will no longer load any Flash content even if functions are using it in your actions and attempt to load Flash media. - PowerPac's internal server has been changed to use the PHP Development Server. This change gives the server better results, especially when testing your exports with Google Chrome. The older server is still available, but you will likely prefer the PHP version instead. The new server is bound to interface 0.0.0.0 so your export testing can occur from any machine on your network. In the address bar of the browser anywhere on your network simply enter:
http://[machine ip]:8282/[bookname]
The only requirement is that the [machine ip] must already be accessible within the network. - Bug fix to page transition feature to ensure smooth transitions even when clicking through multiple pages.
- Bug fix to userProperty() that caused unexpected results or failure when setting properties on groups when the parameter parseGroup = true.
- Bug fixes to setWebFonts() to solve a problem where some objects would not have their class names updated to use the specified web fonts.
- Parameter help updated.
- Enhanced getPageNameList() so you can directly return the list as an array. The function now has better XML support in that you can enter a fully compiled Regular Expression as the filter parameter.
- PowerPac SBK updates to smooth and automate upgrading books to the latest v15 series.
- Enhanced getPageNameFromNum() to permit additional support for the pageNumber parameter. Function accepts the strings: "current", "next", "previous", and relative strings like "+2" and "-3" from current page. The return value has been changed to return an empty string if the pageNumber cannot be resolved to a valid page in the book.
- Small bug fix to setBrowserWindowStyles() to fix an issue where nested ToolBook exports inside fields would not allow the field transparency/color to show through the inserted ToolBook export.
- Enhancements to pgStyleObject() to make it work better with various button types.
- Fixed some installer issues which affected Windows XP.
- Bug fix to pgGotoURL() to fix failure to return window object when opening a popup window in another tab or sized window.
- NEW FEATURE: Added Export Option called Allow Browser Right-Click Menu. If checked (ON), the published export will permit right-clicking on the page and related objects to view source HTML and other debug-related information. This is a useful feature for debugging and troubleshooting. It may be beneficial to allow end users access to this feature depending upon the design intent of your project.
- Updated xml syntax highlighting in NotePad3 editor ini for CDATA sections.
- Enhanced pgTBObjSet() to accept a new myProperty = "over" with a myValue of true/false. This is very useful to force buttons with rollover graphics to be either ON or OFF. Sometimes buttons with rollover graphics get stuck ON until the mouse is moved over and out. Now you can ensure the state is always as expected by calling pgTBObjSet() with myProperty = "over". Of course, this property is only supported for actual ToolBook buttons and not for XML buttons.
- Bug fixes to pgButtonHTML() to resolve a few issues that may occur when calling this from an XML file. The function will now strip any tabs in the HTML code. This ensures that the caption can be checked using simple text comparisons in an if/then statement.
- Style fixes applied to themes for subModal().
- Added enhancement and new parameter to subModal() called winDrag. Setting this to false will disallow users from dragging a subModal() window around the browser client area. The default value is true to maintain backwards compatibility with previous versions.
- Cosmetic changes and styling adjustments to subModal(). These changes should ensure better cross-browser compatibility.
- Added support for favicon.ico if placed in the root of the export where index.html is found. The export engine supports png files also, but the preferred file is favicon.ico.
NOTE: These files are used by the browser to personalize the browser tab with an icon to identify your company or content. - Adjustments to subModal() and setModalReturnVal() to permit these functions to work in the same actions sequence. In addition, a small bug fix was applied to subModal() to clear a global variable when the subModal() window opens.
- Bug fix for pgTBObjGet() where the function would fail to get text for a <textarea> element created with an XML file.
- Added support for the JavaScript FormData object in PowerPac's XMLHttpRequest() function. The FormData object enables developers to build more robust data transfers to a servers including the uploading of files, etc.
- Modified subModal() to automatically resize the width of a modal window when the scrolling feature is turned on. This means that all the developer has to do is specify the available width of the window and subModal() will make allowance for the width of the scrollbar object.
NOTE: This may be a script-breaking change as it might require an adjustment in dialog window sizes previously specified in your project(s). - Fixed a scrollbar flash caused by changes and enhancements to subModal() in item 25.
- Several improvements to the included PowerPacServer.exe. The included config.ini makes it easy to create a limited standalone web application. Complete comments are included in the config.ini to make setting up the server as simple as possible. If you copy the server to a folder where GoogleChromePortable.exe is located, the server will automatically launch the browser with the content you specify in the config.ini. The content can be loaded in normal mode or in kiosk mode fullscreen with no titlebar or bookmarks.
- Adjustment to htmlVideoLoader() so that the loading spinner is no longer visible if a video is loaded with controls=false.
- Bug fixes to cookie functions when using local or session storage options. It seems that data strings were not being properly encoded and at times would throw unexpected results when reading back the cookie value. This caused problems if storing encrypted cookies with data created with pgStringEncrypt(). When saving cookies to disk, this was not a problem.
NOTE: v14.950.2 removed these changes as unnecessary. - Prevent numeric passwords from being used in pgStringEncrypt(). If a numeric password is submitted, the function will convert it to a string to ensure consistent success when decrypting data.
NOTE: It is best to use a mix of letters and numbers for passwords. - Enhanced htmlVideoLoader(). The controls parameter now accepts a boolean value, an integer, or the string "youtube" when defining the controls that will be shown. The enhancement involves setting the parameter to an integer. If controls = -1, the controlbar will be shown and never fadeout. If controls = integer > 0, the fadeout time will be set to the controls value in milliseconds. In all other cases the controlbar will fade out in the default time of 6000ms.
- Bug fixes to internal PowerPac function strip_tags() to better support filtering only specific HTML entities/markup.
- NEW FUNCTION called removeHTMLtags() to expose all the features of PowerPac's internal function strip_tags() to Actions Editor usage. This permits users to remove HTML markup from a sting of code.
- Added session and local string/cookie saving to automatically be base64 encoded. This should help ensure long encrypted strings are successfully returned for decrypting to the calling application.
- Added NEW parameter to removeHTMLtags() called removeWS. This further helps to determine exactly what is removed from an HTML string. The new parameter by default removes white space from the beginning and end of the strings.
- Enhancements to getPageNameList() to provide additional return scenarios. Users can include pages marked as skipNavigation = true in the list of pages returned and can count the number of pages returned in the list.
- Bug fixes and clarifications to the Parameter Help API page for getPageNameList().
- Bug fix to pgIsNumber() which is an internal PowerPac function which checks whether a submitted value is a number. This PowerPac function replaces the isNumber() function body in the Actions Editor system. The bug fix involved checking boolean values. Submitting the boolean value true would always return true as though it were a number. Now the function properly returns false when boolean values are submitted.
- Ported several function changes to com_link.js (PGSD_PowerPac_com_link.js) for use in non-ToolBook HTML pages that need to send data back and forth to a ToolBook application. Newly ported functions include pgIsNumber(), pgStringEncrypt(), and updated cookie reading/writing functions.
- Updated the NotePad3 editor to version 5.19.
- Regression . . . rollback to NotePad3 v4.18 build 992 which seems to work better than v5.19 (at least for now).
- Updated pgFormatNumber() to permit better formatting when unformat = true.
- Fixed a page centering bug which has probably existed for a long time.
- Fixed a style synchronization problem between pgStyleObject() and pgTBObjGet() involving the visibility of an object. Seems that if pgStyleObject() was used to set visibility of object to "hidden" and then when pgTBObjGet() was called to check the "visible" of the object, the return would not match the actual state of the object.
- NEW XML Engine features! The interpreter will now directly compile your Javascript object or array code from the <![CDATA[ ... ]]> section of your tags. See this POST for information.)
- Improved XML developer feedback if interpreter errors are found during XML parsing.
- Fixed a small bug in pgStyleObject() when manipulating non-ToolBook objects that have display:none set.
- Bug fix to buildComboBoxOptionsList() to correct an anomally that appears when setting comboBox items with auto-remove top item and then setting new items before the top item has been removed by a user change event. The result would truncate the new options list. This has been fixed.
- Bug fix for getPageNameList() which prevented returning an array of names without the count in indice [0]. This appears to be a problem introduced in an earlier change (see item 36).
- NEW FUNCTION called pgLoadSVG(). Use this function to load SVG vector-based graphics drawn in Adobe Illustrator, Inkscape, CorelDraw, and other related graphics programs. SVG files can be loaded directly into fields as containers. The SVG can be scaled as needed to fit the container OR, the container can be resized to the size of the SVG. Support is provided to load SVG objects as <objects> (recommended) or <img> (for compatibility) elements.
- Bug fix to htmlVideoLoader() to fix a recursion error that would occur when going fullscreen with level 0 elements which contained a playing video.
- NEW FUNCTION called pgManipulateSVG(). Use this function to manipulate visibility and styles in objects of SVG vector-based graphics files.
- Ported new functions from v15 beta releases into the XML engine so tags can be used in XML files based on these new functions. (e.g.: <pgLoadSVG> ... </pgLoadSVG>)