Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Error when setting FOS Notifications, autodismiss time with substitution variable #4

Closed
dsslr opened this issue Apr 28, 2022 · 2 comments

Comments

@dsslr
Copy link

dsslr commented Apr 28, 2022

Hi,

I'm using FOS Notifications and try to set the "Autodismiss After" using a application variable with syntax &MY_TIMEOUT.
It should be supported accorindg to the help-section

_Autodismiss After

Enter the number of seconds to display the notification before it is automatically removed.

Additional Information

Type: Integer
Supported Substitutions: Application, Page Items and System Variables_

The error I get is :

`Technical Info (only visible for developers)

is_internal_error: true
apex_error_code: WWV_FLOW_PLUGIN.RUN_PLSQL_ERR
ora_sqlcode: -6502
ora_sqlerrm: ORA-06502: PL/SQL: fel i tal eller värde: fel när tecken konverterades till tal ORA-06512: vid "APEX_210200.WWV_FLOW_CODE_EXEC_PLSQL", rad 124 ORA-06512: vid "APEX_210200.WWV_FLOW_DYNAMIC_EXEC", rad 2417 ORA-06512: vid rad 61 ORA-06512: vid rad 211 ORA-06512: vid "SYS.DBMS_SYS_SQL", rad 2120 ORA-06512: vid "SYS.WWV_DBMS_SQL_APEX_210200", rad 682 ORA-06512: vid "APEX_210200.WWV_FLOW_DYNAMIC_EXEC", rad 2378 ORA-06512: vid "APEX_210200.WWV_FLOW_CODE_EXEC_PLSQL", rad 96 ORA-06512: vid "APEX_210200.WWV_FLOW_CODE_EXEC_PLSQL", rad 301 ORA-06512: vid "APEX_210200.WWV_FLOW_CODE_EXEC", rad 340
component.type: APEX_APPLICATION_PAGE_DA_ACTS
component.id: 14293817134296185
component.name: PLUGIN_COM.FOS.NOTIFICATIONS
error_backtrace:

ORA-06512: vid rad 61
ORA-06512: vid rad 211
ORA-06512: vid "SYS.DBMS_SYS_SQL", rad 2120
ORA-06512: vid "SYS.WWV_DBMS_SQL_APEX_210200", rad 682
ORA-06512: vid "APEX_210200.WWV_FLOW_DYNAMIC_EXEC", rad 2378
ORA-06512: vid "APEX_210200.WWV_FLOW_CODE_EXEC_PLSQL", rad 124
ORA-06512: vid "APEX_210200.WWV_FLOW_DYNAMIC_EXEC", rad 2417
ORA-06512: vid rad 61
ORA-06512: vid rad 211
ORA-06512: vid "SYS.DBMS_SYS_SQL", rad 2120
ORA-06512: vid "SYS.WWV_DBMS_SQL_APEX_210200", rad 682
ORA-06512: vid "APEX_210200.WWV_FLOW_DYNAMIC_EXEC", rad 2378
ORA-06512: vid "APEX_210200.WWV_FLOW_CODE_EXEC_PLSQL", rad 96
ORA-06512: vid "APEX_210200.WWV_FLOW_CODE_EXEC_PLSQL", rad 301
ORA-06512: vid "APEX_210200.WWV_FLOW_CODE_EXEC", rad 340
ORA-06512: vid "APEX_210200.WWV_FLOW_PLUGIN", rad 1943

error_statement:

begin declare
-- =============================================================================
--
--  FOS = FOEX Open Source (fos.world), by FOEX GmbH, Austria (www.foex.at)
--
--  This plug-in lets you easily create notification messages in APEX using 
--  jQuery Toastr Notifications
--
--  License: MIT
--
--  GitHub: https://github.com/foex-open-source/fos-notifications
--
-- =============================================================================
--
function render
  ( p_dynamic_action apex_plugin.t_dynamic_action
  , p_plugin         apex_plugin.t_plugin
  )
return apex_plugin.t_dynamic_action_render_result
as
    l_result                 apex_plugin.t_dynamic_action_render_result;

    -- component settings / application level
    l_default_position       p_dynamic_action.attribute_01%type := nvl(p_plugin.attribute_01, 'top-right');
    l_default_success_icon   p_dynamic_action.attribute_01%type := nvl(p_plugin.attribute_02, 'fa-check-circle');
    l_default_info_icon      p_dynamic_action.attribute_01%type := nvl(p_plugin.attribute_03, 'fa-info-circle');
    l_default_warning_icon   p_dynamic_action.attribute_01%type := nvl(p_plugin.attribute_04, 'fa-exclamation-triangle');
    l_default_error_icon     p_dynamic_action.attribute_01%type := nvl(p_plugin.attribute_05, 'fa-times-circle');
    l_default_options        p_dynamic_action.attribute_01%type := nvl(p_plugin.attribute_06, 'escape-html:newest-on-top:client-side-substitutions:dismiss-on-click:dismiss-on-button');
    l_errors_as_warnings     boolean                            := instr(p_plugin.attribute_06, 'errors-as-warnings') > 0;
    l_default_dismiss_after  pls_integer                        := p_plugin.attribute_07;

    -- general attributes
    l_action                p_dynamic_action.attribute_01%type := p_dynamic_action.attribute_01;
    l_message_type          p_dynamic_action.attribute_02%type := p_dynamic_action.attribute_02;
    l_static_title          p_dynamic_action.attribute_03%type := p_dynamic_action.attribute_03;
    l_static_message        p_dynamic_action.attribute_04%type := p_dynamic_action.attribute_04;
    l_js_title_code         p_dynamic_action.attribute_05%type := p_dynamic_action.attribute_05;
    l_js_message_code       p_dynamic_action.attribute_06%type := p_dynamic_action.attribute_06;
    l_override_defaults     boolean                            := nvl(p_dynamic_action.attribute_09,'N') = 'Y';
 
    l_options               apex_t_varchar2 := apex_string.split(case when l_override_defaults then p_dynamic_action.attribute_07 else l_default_options end, ':');    
    
    -- options
    l_auto_dismiss          boolean  := 'autodismiss'               member of l_options;
    l_escape                boolean  := 'escape-html'               member of l_options;
    l_auto_dismiss_success  boolean  := 'autodismiss-success'       member of l_options;
    l_auto_dismiss_warning  boolean  := 'autodismiss-warning'       member of l_options;
    l_auto_dismiss_error    boolean  := 'autodismiss-error'         member of l_options;
    l_auto_dismiss_info     boolean  := 'autodismiss-info'          member of l_options;
    l_client_substitutions  boolean  := 'client-side-substitutions' member of l_options;
    l_clear_all             boolean  := 'remove-notifications'      member of l_options;
    l_show_dismiss_button   boolean  := 'dismiss-on-button'         member of l_options;
    l_dismiss_on_click      boolean  := 'dismiss-on-click'          member of l_options;
    l_newest_on_top         boolean  := 'newest-on-top'             member of l_options;
    l_prevent_duplicates    boolean  := 'prevent-duplicates'        member of l_options;
    l_inline_item_error     boolean  := p_dynamic_action.attribute_12 is not null;
    l_position              p_dynamic_action.attribute_08%type := case when l_override_defaults then p_dynamic_action.attribute_08 else l_default_position end;
    l_icon_override         p_dynamic_action.attribute_10%type`>

//Samuel

@foex-open-source
Copy link
Owner

Hey!

Thanks for reporting this issue, it's a bug, it'll be fixed with the next release!

Until that, you could fix it just by replacing two lines in the render function.

Line 30:
l_default_dismiss_after pls_integer := apex_plugin_util.replace_substitutions(p_plugin.attribute_07);

Line 60:
l_auto_dismiss_after pls_integer := case when l_override_defaults then apex_plugin_util.replace_substitutions(p_dynamic_action.attribute_11) else l_default_dismiss_after end;

image

@dsslr
Copy link
Author

dsslr commented Apr 29, 2022

Thanks!
Works great :)
/Sam

@dsslr dsslr closed this as completed Apr 29, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants