Changelog
Version 23.2.2
Release Date: 2023-10-24
Froala framework
Changes
- The Froala WYSIWYG editor updated to 4.1.3 - changelog
Item plug-in
Bug fixes
- Fixed: Component settings Image Upload URL (Value Required) in 23.2.1 was referencing a hardcoded invalid URL
- Fixed: Plug-in attribute File URLs to Load \ Cascading Style Sheet was having extra
/
for plug-in file froala_editor.pkgd.min.css, causing editor not to render correctly on servers with strict policies - Fixed: Computing REST handlers URL based on the plug-in substitution string
#DEFAULT_*#
was malformed whenowa_util.get_cgi_env('X-Forwarded-Port')
is set toNULL
- Fixed: Uploading error message when REST upload handler raises errors
ERR_*
was misleading, pointing to CORS policies [1] - Fixed: Updating CLOB using supporting dynamic action was setting a page item session state to not supported value, including on-load checksum [2]
Annotations
- [1] Now, it prompts a developer to check an error in a browser console for a detailed error raised by a browser.
- [2] When using the plug-in APEX before 22.2, and the CLOB value exceeds the VARCHAR2 limitation, the plug-in nulls a page item session item, similarly to the APEX engine.
Version 23.2.1
Release Date: 2023-10-06
The plug-in is successfully tested with the most recent APEX version (23.1.3) at apex.oracle.com.
Packages
UC_FROALA_RTE
Bug fixes
- Fixed: Checking APEX version for
CLOB
support raises an error on Oracle APEX 22.1.x
Sample application
Bug fixes
- Fixed: A few sample application pages breadcrumb title doesn't match example title
Version 23.2
Release Date: 2023-09-20
The plug-in is successfully tested with the most recent APEX version (23.1.3) at apex.oracle.com.
Rich Text Editor Pro
General
- Froala editor is updated to 4.1.2
- a page item value in the session state is no longer the checksum of the current rich text - on APEX before 22.2, when the rich text content exceeds VARCHAR2 limitation, the session state is set to NULL according to APEX capabilities
- Checksum validation is stored in f01 or a page item if defined
- The editor’s toolbar layout is refined - buttons are regrouped within Froala editor’s toolbar groups: paragraph, text, rich, and misc.
Bug fixes
Fixed: Removing duplicated uploaded images one by one doesn’t result in marking an image as removed in the plug-in session state.
Fixed: The editor’s popup when inserting an image was cropped by APEX CSS rules for the grid column
Fixed: The editor’s popup when inserting a link was cropped by APEX CSS rules for the grid column
Fixed: The editor’s popup when inserting a font awesome icon was cropped by APEX CSS rules for the grid column
Fixed: The editor’s popup when inserting special characters was cropped by APEX CSS rules for the grid column
Fixed: The editor’s popup inserting emoticons icon was cropped by APEX CSS rules for the grid column
Fixed: The editor’s popup inserting video was cropped by APEX CSS rules for the grid column
Fixed: Clearing the plug-in session state using URL syntax and PL/SQL API manageClearCache was not working as expected
New features
- Support for native CLOB support starting with APEX 22.2 [1]
- The native Form component is now supported for APEX 19.2 and above [2]
- New image uploading mechanism
- Upload images on demand using dynamic action
- New third-party integrations are introduced
- Enhanced handling for uploaded images
Annotations
- [1] Native CLOB support still has flaws. For example, page item attribute Value required raises an error when rich text content exceeds the VARCHAR2 limitation. The workaround is to use APEX validation NOT NULL
- [2] Before APEX 22.2, the supporting process plug-in is required to handle CLOB values exceeding the VARCHAR2 limitation. CLOB values below 32 767 characters are supported natively
Support for CLOB values across APEX versions
- Form component is supported across APEX versions - before APEX 22.2, the supporting process plug-in is required to handle CLOB values exceeding the VARCHAR2 limitation. CLOB values below 32 767 characters are supported natively
- When not using a supporting plug-in, CLOB is supported by the APEX engine
New image uploading mechanism
- Images are uploaded in parallel, not one by one
- Possibility to preview upload errors and successes from page item level
- Configurable upload workflow to automatically cancel, continue or ask the end-user to take an action
- An image upload parameters are evaluated for each image when uploading
Upload images on demand
- Images can be uploaded on demand using the supporting dynamic action plug-in
- A developer can specify three JavaScript callbacks to be executed based on the upload workflow: fail, cancel, and done
Third-party plug-ins are supported
- A free third-party plug-in supported: Track Changes
- Paid third-party plug-in supported: WProofreader WebSpellCheck for Froala
- Paid third-party plug-in supported: Wiris Math Type
- Paid third-party plug-in supported: CODOX.io
Enhancements
- A new page item level attribute Initialization PL/SQL Initialization
- A new application level attribute Initialization PL/SQL Initialization
- Page item source type Database Column is supported when using native form component [1]
- Page item source type Item is supported [1]
- Page item source type PL/SQL Expression is supported [1]
- Page item attribute Default is now supported [1]
- Page item attributes Pre and Post are now supported
- Computing page item height is enhanced - minimum and maximum height is computed based on page item Height attribute, JavaScript Initialization Code (height, heightMax, heightMin), or value overridden using supporting dynamic action plug-in
Annotations
- [1] The plug-in relies on the APEX capabilities to handle CLOB values.
Item plug-in
Bug fixes
- Fixed: When the plug-in attribute JavaScript Initialization Code raised an error, the unhandled error message was shown. Now. the plug-in shows why, for example, the returned value from the anonymous JavaScript function is undefined.
- Fixed: plug-in wasn’t initialized when dynamic action customizing the editor wasn’t executed immediately
Changes
- The setting Enable TUI Image Editor is removed from page item attribute Settings in favor of the package variable UC_FROALA_RTE.g_plug_tui_enable. By default, it’s set to true, and it can be configured on the page item level or application level
- A new page item attribute Settings option is added: Expand height to fit rich text
- A new page item attribute is added: Initialization PL/SQL Code
- A new component settings attribute is added: Initialization PL/SQL Code
Dynamic Action plug-in
Bug fixes
- Fixed: missing help text for Upload parameters
- Fixed: missing help text for Image Browse Parameters
- Fixed: When dynamic action was implemented on the global page and it was containing true and false actions, and dynamic action wasn’t applied to the current instance, it made the plug-in stuck on initialization
- Fixed: using multiple instances where one is customized with dynamic action blocks initialization of each
New features
- New action Upload Images on demand
Changes
- Standard attribute JavaScript Initialization Code is enabled - right now, it is used only by a new action* upload images on demand
- Dynamic actions support dynamic action Wait For Result attribute
- Customizing rich text editor using global page has been redesigned
Process plug-in
Changes
- A new flag, g_froala_image_safe_to_delete is available for Delete Removed Images
- When Update PL/SQL doesn’t update CLOB in the database (SQL%ROWCOUNT is 0) then, the plug-in error message is set to Updating #LABEL# failed. where #LABEL# is page item label text.
New features
- A new process Process Uploaded Images looping over recently uploaded images, has been added
Packages
UC_FROALA_RTE
General
- New package variable g_update_include_rowcount
- New package variable g_toolbar_presets_refined
- New package variable g_warn_about_clob [1]
- New package variable g_froala_image_safe_to_delete [2]
- New package constant c_toolbar_group_paragraph [3]
- New package constant c_toolbar_group_text [3]
- New package constant c_toolbar_group_rich [3]
- New package constant c_toolbar_group_misc [3]
Annotations
- [1] if enabled and APEX supports CLOB and page item attribute Data Type is not set to CLOB, then the plug-in shows an error prompting to enable CLOB on page item level.
- [2] It was released with v23.1 but not included in the changelog
- [3] constants should be used as values for g_plug_trackchanges_group, g_plug_wiris_editor_group, g_plug_wiris_chemistry_group
Third-party integration: Track Changes
- New package variable g_plug_trackchanges_enable
- New package variable g_plug_trackchanges_group
- New package variable g_plug_trackchanges_pos
Third-party integration: TOAST UI Image Editor
- New package variable g_plug_tui_enable
Third-party integration: WProofreader Text Checker
- New package variable g_plug_spellcheck_enable
- New package variable g_plug_spellcheck_js
- New package variable g_plug_spellcheck_api
- New package variable g_plug_spellcheck_lang
- New package variable g_plug_spellcheck_ui_lang
- New package variable g_plug_spellcheck_theme
- New package variable g_plug_spellcheck_badge_enable
- New package variable g_plug_spellcheck_badge_lang
Third-party integration: Wiris Math Type
- New package variable g_plug_wiris_enable
- New package variable g_plug_wiris_js
- New package variable g_plug_wiris_editor_group
- New package variable g_plug_wiris_editor_pos
- New package variable g_plug_wiris_chemistry_group
- New package variable g_plug_wiris_chemistry_pos
UC_FROALA_SETTINGS
New package variable g_disable_rest_enabled_check
Sample application
New features
- Preview the plug-in page item definition directly in the sample application
- Preview the plug-in dynamic action definition directly in the sample application
- Preview the plug-in process definition directly in the sample application
- Preview the native form definition directly in the sample application
- Example pages are described using United Codes Guided Tour Pro
- Examples pages navigation is enhanced with the United Codes Context Menu
New examples
- Native form implementation for Oracle APEX 22.2 and above
- Native form implementation for Oracle APEX before 22.2
- Using page item source attribute to load CLOB content
- Display CLOB rich text using page item read-only attribute
- Handle CLOB using the supporting process plug-in only
- Handle CLOB using the plug-in PL/SQL API only
- Configure the plug-in upload images workflow
- Save images in the context of rich text in the database
- Custom toolbar: Google Calendar
- Custom toolbar: Google Docs
- Third-party integration: Track Changes
- Third-party integration: WProofreader WebSpellChecker
- This-party integration: Wiris Math Type
- Process Uploaded Images
- Upload Images on demand
Refined examples
- Customize the rich text editor using
- Send e-mail written using rich text editor
- Home page
Database objects
- A new sample table
UC_FROALA_SAMPLE_CLOB_BLOBS
- A new sequence
UC_FROALA_SAMPLE_CLOB_BLOBS_SEQ
- A new constraint
UC_FROALA_SAMPLE_CLOB_BLOBS_FK
- A new constraint
UC_FROALA_SAMPLE_CLOB_BLOBS_FK2
Version 23.1
Release Date: 2023-03-15
The plug-in is successfully tested with the most recent APEX version (22.2.4) at apex.oracle.com.
Item plug-in
- All files except the TUI image editor and language files are referenced in an application builder's plug-in definition - see the plug-in attribute File URLs to Load. Referencing the plug-in JS and CSS files on th plug-in definition level enables a developer to move the plug-in files to an external server.
- Fixed: the plug-in export file size is reduced from 13,3 MB to 6,4 MD due to removing redundant Froala files from the plug-in definition.
- Fixed: WEBP images don't raise an error when uploading.
- Fixed: the plug-in raises an error for a non-existing metadata procedure.
- Fixed: an image collection flag save to remove is being wrongly computed when an image URL protocol differs from an application's protocol.
- Fixed: missing workspace name when an application uses friendly URLs and when REST URL is computed from the plug-in substitution strings
#DEFAULT_REST_URL_*
- Fixed: the plug-in event UC Froala Images In Collection triggered with corrupted event data. [1]
- Fixed: the plug-in raises a PL/SQL error when computing a CLOB checksum for CLOBs value bigger than 8 MB.
- Fixed: missing help text for the standard plug-in attribute Execute JavaScript Initialization Code
Annotations
- [1] The plug-in event is described in the section Item plug-in \ Events \ UC Froala Images In Collection.
PL/SQL API
- A new signature for function
UC_FROALA_RTE.clobGetHTML
is now available. The function accepts an item name implementing the plug-in. - A new signature for procedure
UC_FROALA_RTE.clobDisplay
is now available. The procedure accepts an item name implementing the plug-in.
Sample application
The plug-in documentation can be opened directly from the sample application pages.
Fixed: the de-installation script raises an error on removing package
PIP_CRYPTO
.
Documentation
- The documentation is remastered and available at https://www.plug-ins-pro.com/docs/rich-text-editor-pro.
- The database objects created after installation are now described.
- The installation instructions (sample application and manual installation) are now described.
- The license activation instructions are now described.
- The support instructions are
- The downloading instructions are now described.
- The changelog is now included in the documentation.
Installation bundle
- DDL scripts removed:
ddl_unitedcodes_rich_text_editor_pro.sql
andddl_unitedcodes_rich_text_editor_pro_sample_rest.sql
. [1] - A new DDL script is now available:
ddl_uc_rte_update_plugin_pkgs.sql
. [2] - A new DDL script is now available:
ddl_uc_rte_manual_install.sql
. [3] - A new DDL script is now available:
ddl_uc_rte_manual_deinstall.sql
. [4]
Annotations
- [1] Scripts are replaced by a new DDL script
ddl_uc_rte_manual_install
installing all objects at once. - [2] The script overrides the plug-in packages
UC_FROALA_RTE
,UC_FROALA_SETTINGS
, and the plug-in typeUC_RTE_ACCESS_TOKEN
. - [3] The script is used to manually install the plug-in database objects in an existing application.
- [4] The script removes database objects created using the script
ddl_uc_rte_manual_install.sql
.
Version 22.2
Release Date: 2022-01-18
The Froala editor is upgraded from version 3.2.6-1 to 4.0.16. [1]
The package
PIP_CRYPTO
is now renamed toUC_CRYPTO
Fixed: the plug-in raises an error for a non-existing metadata procedure on APEX 22.x.
Fixed: the plug-in raises a JavaScript error when a modal page implementing the plug-in uses page attributes width and height. [2]
Annotations
- [1] The Froala changelog is available here.
- [2] based on version 22.1.1 which was never released publicly.
Version 22.1.1
Release Date: never
- Fixed: the plug-in raises a JavaScript error when a modal page implementing the plug-in uses page attributes width and height.
- Fixed: substitution string
#OWNER_LOWER#
is again available in order to reference REST URL without RESTfulservice name
Version 22.1
Release Date: 2022-01-18
Important notice regarding upgrading from v21.3 and v21.4
Changes introduced with this release might be affected by the current plug-in settings in your existing implementation. It is strongly recommended that you upgrade the plug-in in a copy of your application before releasing it to a production environment.
- After upgrading the plug-in in your application, examine the plug-in component settings in Shared Components. Attributes configuring URLs to the REST module must be (if using #OWNER_LOWER#) updated with new default values described in help texts. If any plug-in instance is using Override Application Attributes, it must be updated too. Using #OWNER_LOWER# results in showing an error on page load. Learn more about REST URL attributes help text.
- Examine changes in the sample REST package for uploading images (procedure UC_FROALA_SAMPLE_REST.imageUpload) - REST template uploading images has to return the full URL to the uploaded image. The current value of a new attribute Image GET URL is available through the plug-in access token, and it must be used to return an image URL by REST template upload.
- To enable uploading images, examine all plug-in implementations and set the new plug-in attribute Upload Image(s) on Request(s) on the item level. Otherwise, newly added images will never be uploaded using the plug-in REST.
- If you were processing images (stored in the plug-in collection) on page submission, you must adapt to the new collection column usage - learn more in the plug-in documentation.
- If you were using the supporting dynamic action plug-in action Browser Parameters, ensure dynamic actions implementing the action listen to the plug-in event Froala Before Initialization.
General
- Froala framework has been updated from version 3.2.1 to 3.2.6-1 (learn more in Froala change log Changelog for WYSIWYG Editor - Froala )
- Froala is now more RWD-friendly and adapts editor width dynamically.
- Image resizing with the mouse is now enabled by default.
- Multibyte characters are supported and don't raise an error when processing CLOB content.
- When an application (or item) level attributes defining REST URLs have a different protocol than currently used in the browser, the plug-in forces the current protocol
Image handling
- Images are now uploaded only for defined page request(s) when a page is submitted. If the plug-in does not upload images, they remain in CLOB content as they were added (or loaded with CLOB) to the editor. For example, images added from the desktop are embedded as inline base 64 images by default,
- If an image is copied and pasted into the plug-in editor within a browser, the plug-in will try to download an image (based on the src attribute) and upload (using REST) it on-page submission. If the plug-in fails to download an image, the end-user is asked whether to cancel the upload or preserve the image in CLOB content as it is.
- Images uploaded using plug-in REST and removed from the editor can be easily deleted in the database using the new supporting plug-in process type Delete Removed Images.
- Images statuses in the collection were re-designed and use different collection columns - learn more in the documentation.
- Pasting content containing images from Microsoft Word or Google docs is now supported.
- Images added to the editor use fewer data-* attributes to track images.
Item plug-in
Item Attributes
- Application-level attributes for REST URLs are now required.
- New item level attribute Upload Image(s) on Request(s) defining page submit a request for which images are uploaded.
- Item level attributes Image Browse URL; Image Delete URL and Image Upload URL use new default values #DEFAULT_REST_URL_UPLOAD#, #DEFAULT_REST_URL_BROWSE#, #DEFAULT_REST_URL_DELETE#. Old substitution string #OWNER_LOWER# is still supported but deprecated.
- Item-level attribute Settings \ Embed Images as Inline Base64 was removed.
- Application and item level attribute Image GET URL have been added along with default value #DEFAULT_REST_URL_GET#.
- Application and item level attributes Image Browse URL, Image Delete URL, Image Upload URL, and Image GET URL can use substitution string #DEFAULT_REST_URL_MODULE# - see the attribute help text for detailed information.
Events
- Event Froala Image Removed was removed.
- Event Froala Image Inserted was removed.
- Event Froala Images in Collection is updated and exposes new data - learn more in the plug-in documentation.
Dynamic action plug-in
- The supporting plug-in now supports Oracle APEX dynamic action flag Wait for Result
- Action Enable Base64 Images was removed.
- Action Disable Base64 Images was removed.
- Action Browser Parameters has been updated and must now be created only for the plug-in event Froala Before Initialization.
Process plug-in
- A new process type, Delete Removed Images, is added (learn more about usage in the sample application)
PL/SQL API
- A new procedure clobDisplay is added.
- A new function clobGetHTML is added.
RESTful Service
Sample REST module ucfroalasamplerest is updated on the template level.
Sample REST module ucfroalasamplerest package UC_FROALA_SAMPLE_REST has been updated.
- Procedures were adapted to the new image handling.
- Procedures now have default error handling implemented.
Sample Application
- The home page has been updated in order to show major plug-in features.
- A new page The Plug-in \ Attributes \ Upload Images on Request has been added,
- The page The Plug-in \ Events has been updated.
- The page The Plug-in \ Attributes Plug-in \ Embed Images as Inline Base64 was removed
- The page The plug-in \ Attributes \ Height has been updated.
- A new page Supporting plug-ins \ United Codes Rich Text Editor Pro (Process) \ Delete Removed Images has been added,
- The page Supporting plug-ins \ United Codes Rich Text Editor Pro (Extend) \ Minimum Height has been updated.
- The page Supporting plug-ins \ United Codes Rich Text Editor Pro (Extend) \ Maximum Height has been updated.
- The page Supporting plug-ins \ United Codes Rich Text Editor Pro (Extend) \ Base64 Images was removed.
- The page Supporting plug-ins \ United Codes Rich Text Editor Pro (Extend) Browse Parameters is updated - the page description was invalid and misleading.
- The page Examples \ How to display CLOB content? has been updated
- The page Examples \ How to create and send an HTML email? has been updated
- The page Examples \ How do I print the contents of my editor? has been updated
Supporting Objects
Installation scripts have been updated.
Deinstallation scripts have been updated. All plug-in supporting objects are now removed. If any other plug-in is activated in the current workspace, the script won't remove the objects listed below:
- UC_PLUGISNPRO_LICENSE table
- PIP_CRYPTO package
- UC_PLUGINSPRO package
Version 21.3
Release Date: 2021-03-31
Updated licensing mechanism.
Important Note: Installing a Plug-ins Pro plug-in containing the 31-MAR-2021 licensing update will require that ALL Plug-ins Pro plug-ins installed in the same schema be updated and reactivated to a compatible version released on or after 31-MAR-2021.
Version 21.2
Release Date: 2021-03-03
Fix for supporting plug-in process:
- When the plug-in collection wasn't initialized, the plug-in type Clear was raising an error on clearing the plug-in not initialized collection. Now, removing an item CLOB value from the plug-in collection is done only if the collection is initialized. Otherwise, no action is performed.
- When the plug-in type was set to Load from SQL Query and provided SQL query returned other types than CLOB, the plug-in wasn't able to fetch CLOB value using APEX_EXEC.GET_CLOB. Now, the plug-in raises an error if APEX_EXEC.GET_CLOB raises no_data_found. In order to fetch a non-CLOB value from SQL Query, it is required to use the to_clob function within SQL Query. For example: select to_clob(123) from dual
Fix for license creation to support Oracle Database 21c.
Version 21.1
Release Date: 2021-02-01
The following fixes are included in 21.1:
- Modal Page issue fix: creating the plug-in instance is followed with a timeout check (500ms) to initialize the plug-in if event theme42ready or apexwindowresized is not triggered.
- Added apex-session for ORDS RESTful call header / allows authenticating call on ORDS level
- Refactored error handling for the process plug-in
- When the process plug-in load actions execute and no_data_found is raised, the plug-in logs information on the PL/SQL level and sets the CLOB to NULL
Version 20.1.1
Release Date: 2020-12-02
The following fixes are included in 20.1.1:
- Initialization of RTE in a Modal window
- Compatibility with Oracle DB 12c
Version 20.1
Release Date: 2020-11-20
Initial release! Rich Text Editor Pro is now available for download.