APEX 5 plugins for everyone - nlOUG · PDF filefunction render ( p_item in...

142
APEX 5 plugins for everyone Alan Arentsen

Transcript of APEX 5 plugins for everyone - nlOUG · PDF filefunction render ( p_item in...

Page 1: APEX 5 plugins for everyone - nlOUG · PDF filefunction render ( p_item in apex_plugin.t_page_item, p_plugin in apex_plugin.t_plugin, p_value in varchar2,

APEX 5 plugins for everyone

Alan Arentsen

Page 2: APEX 5 plugins for everyone - nlOUG · PDF filefunction render ( p_item in apex_plugin.t_page_item, p_plugin in apex_plugin.t_plugin, p_value in varchar2,

APEX 5 plugins for everyone

Alan Arentsen

Page 3: APEX 5 plugins for everyone - nlOUG · PDF filefunction render ( p_item in apex_plugin.t_page_item, p_plugin in apex_plugin.t_plugin, p_value in varchar2,

@alanarentsen

alanarentsen.blogspot.com

Page 4: APEX 5 plugins for everyone - nlOUG · PDF filefunction render ( p_item in apex_plugin.t_page_item, p_plugin in apex_plugin.t_plugin, p_value in varchar2,
Page 5: APEX 5 plugins for everyone - nlOUG · PDF filefunction render ( p_item in apex_plugin.t_page_item, p_plugin in apex_plugin.t_plugin, p_value in varchar2,
Page 6: APEX 5 plugins for everyone - nlOUG · PDF filefunction render ( p_item in apex_plugin.t_page_item, p_plugin in apex_plugin.t_plugin, p_value in varchar2,
Page 7: APEX 5 plugins for everyone - nlOUG · PDF filefunction render ( p_item in apex_plugin.t_page_item, p_plugin in apex_plugin.t_plugin, p_value in varchar2,
Page 8: APEX 5 plugins for everyone - nlOUG · PDF filefunction render ( p_item in apex_plugin.t_page_item, p_plugin in apex_plugin.t_plugin, p_value in varchar2,
Page 9: APEX 5 plugins for everyone - nlOUG · PDF filefunction render ( p_item in apex_plugin.t_page_item, p_plugin in apex_plugin.t_plugin, p_value in varchar2,
Page 10: APEX 5 plugins for everyone - nlOUG · PDF filefunction render ( p_item in apex_plugin.t_page_item, p_plugin in apex_plugin.t_plugin, p_value in varchar2,
Page 11: APEX 5 plugins for everyone - nlOUG · PDF filefunction render ( p_item in apex_plugin.t_page_item, p_plugin in apex_plugin.t_plugin, p_value in varchar2,

Authentication Scheme Type

Authorization Scheme Type

Dynamic Action

Item

Process

Region

Page 12: APEX 5 plugins for everyone - nlOUG · PDF filefunction render ( p_item in apex_plugin.t_page_item, p_plugin in apex_plugin.t_plugin, p_value in varchar2,
Page 13: APEX 5 plugins for everyone - nlOUG · PDF filefunction render ( p_item in apex_plugin.t_page_item, p_plugin in apex_plugin.t_plugin, p_value in varchar2,
Page 14: APEX 5 plugins for everyone - nlOUG · PDF filefunction render ( p_item in apex_plugin.t_page_item, p_plugin in apex_plugin.t_plugin, p_value in varchar2,
Page 15: APEX 5 plugins for everyone - nlOUG · PDF filefunction render ( p_item in apex_plugin.t_page_item, p_plugin in apex_plugin.t_plugin, p_value in varchar2,

Plug-in Repository

Create from scratch

Copy of existing Plug-in

Page 16: APEX 5 plugins for everyone - nlOUG · PDF filefunction render ( p_item in apex_plugin.t_page_item, p_plugin in apex_plugin.t_plugin, p_value in varchar2,

Plug-in Repository

Page 17: APEX 5 plugins for everyone - nlOUG · PDF filefunction render ( p_item in apex_plugin.t_page_item, p_plugin in apex_plugin.t_plugin, p_value in varchar2,
Page 18: APEX 5 plugins for everyone - nlOUG · PDF filefunction render ( p_item in apex_plugin.t_page_item, p_plugin in apex_plugin.t_plugin, p_value in varchar2,
Page 19: APEX 5 plugins for everyone - nlOUG · PDF filefunction render ( p_item in apex_plugin.t_page_item, p_plugin in apex_plugin.t_plugin, p_value in varchar2,
Page 20: APEX 5 plugins for everyone - nlOUG · PDF filefunction render ( p_item in apex_plugin.t_page_item, p_plugin in apex_plugin.t_plugin, p_value in varchar2,
Page 21: APEX 5 plugins for everyone - nlOUG · PDF filefunction render ( p_item in apex_plugin.t_page_item, p_plugin in apex_plugin.t_plugin, p_value in varchar2,
Page 22: APEX 5 plugins for everyone - nlOUG · PDF filefunction render ( p_item in apex_plugin.t_page_item, p_plugin in apex_plugin.t_plugin, p_value in varchar2,
Page 23: APEX 5 plugins for everyone - nlOUG · PDF filefunction render ( p_item in apex_plugin.t_page_item, p_plugin in apex_plugin.t_plugin, p_value in varchar2,
Page 24: APEX 5 plugins for everyone - nlOUG · PDF filefunction render ( p_item in apex_plugin.t_page_item, p_plugin in apex_plugin.t_plugin, p_value in varchar2,
Page 25: APEX 5 plugins for everyone - nlOUG · PDF filefunction render ( p_item in apex_plugin.t_page_item, p_plugin in apex_plugin.t_plugin, p_value in varchar2,
Page 26: APEX 5 plugins for everyone - nlOUG · PDF filefunction render ( p_item in apex_plugin.t_page_item, p_plugin in apex_plugin.t_plugin, p_value in varchar2,
Page 27: APEX 5 plugins for everyone - nlOUG · PDF filefunction render ( p_item in apex_plugin.t_page_item, p_plugin in apex_plugin.t_plugin, p_value in varchar2,
Page 28: APEX 5 plugins for everyone - nlOUG · PDF filefunction render ( p_item in apex_plugin.t_page_item, p_plugin in apex_plugin.t_plugin, p_value in varchar2,
Page 29: APEX 5 plugins for everyone - nlOUG · PDF filefunction render ( p_item in apex_plugin.t_page_item, p_plugin in apex_plugin.t_plugin, p_value in varchar2,
Page 30: APEX 5 plugins for everyone - nlOUG · PDF filefunction render ( p_item in apex_plugin.t_page_item, p_plugin in apex_plugin.t_plugin, p_value in varchar2,
Page 31: APEX 5 plugins for everyone - nlOUG · PDF filefunction render ( p_item in apex_plugin.t_page_item, p_plugin in apex_plugin.t_plugin, p_value in varchar2,
Page 32: APEX 5 plugins for everyone - nlOUG · PDF filefunction render ( p_item in apex_plugin.t_page_item, p_plugin in apex_plugin.t_plugin, p_value in varchar2,

DEM

Page 33: APEX 5 plugins for everyone - nlOUG · PDF filefunction render ( p_item in apex_plugin.t_page_item, p_plugin in apex_plugin.t_plugin, p_value in varchar2,

Plug-in Repository

Create from scratch

Copy of existing Plug-in

Page 34: APEX 5 plugins for everyone - nlOUG · PDF filefunction render ( p_item in apex_plugin.t_page_item, p_plugin in apex_plugin.t_plugin, p_value in varchar2,

Create from scratch

Page 35: APEX 5 plugins for everyone - nlOUG · PDF filefunction render ( p_item in apex_plugin.t_page_item, p_plugin in apex_plugin.t_plugin, p_value in varchar2,

apex.item("P1_STANDARD_CHECK").getValue()

'On'

Page 36: APEX 5 plugins for everyone - nlOUG · PDF filefunction render ( p_item in apex_plugin.t_page_item, p_plugin in apex_plugin.t_plugin, p_value in varchar2,

apex.item("P1_STANDARD_CHECK").getValue()

null

Page 37: APEX 5 plugins for everyone - nlOUG · PDF filefunction render ( p_item in apex_plugin.t_page_item, p_plugin in apex_plugin.t_plugin, p_value in varchar2,

apex.item("P1_STANDARD_CHECK").getValue()

null

Page 38: APEX 5 plugins for everyone - nlOUG · PDF filefunction render ( p_item in apex_plugin.t_page_item, p_plugin in apex_plugin.t_plugin, p_value in varchar2,

apex.item("P1_STANDARD_CHECK").getValue()

'Off'

Page 39: APEX 5 plugins for everyone - nlOUG · PDF filefunction render ( p_item in apex_plugin.t_page_item, p_plugin in apex_plugin.t_plugin, p_value in varchar2,

<input type="checkbox"

id="P1_PLUGIN_CHECK"

class="custom_checkbox"

value="" />

<input type="hidden"

id="P1_PLUGIN_CHECK_HIDDEN"

name="p_t01"

value="Off" />

<label for="P1_PLUGIN_CHECK">Does this work?</label>

Page 40: APEX 5 plugins for everyone - nlOUG · PDF filefunction render ( p_item in apex_plugin.t_page_item, p_plugin in apex_plugin.t_plugin, p_value in varchar2,

<input type="checkbox"

id="P1_PLUGIN_CHECK"

class="custom_checkbox"

value="" />

<input type="hidden"

id="P1_PLUGIN_CHECK_HIDDEN"

name="p_t01"

value="Off" />

<label for="P1_PLUGIN_CHECK">Does this work?</label>

Page 41: APEX 5 plugins for everyone - nlOUG · PDF filefunction render ( p_item in apex_plugin.t_page_item, p_plugin in apex_plugin.t_plugin, p_value in varchar2,

<input type="checkbox"

id="P1_PLUGIN_CHECK"

class="custom_checkbox"

value="" />

<input type="hidden"

id="P1_PLUGIN_CHECK_HIDDEN"

name="p_t01"

value="Off" />

<label for="P1_PLUGIN_CHECK">Does this work?</label>

Page 42: APEX 5 plugins for everyone - nlOUG · PDF filefunction render ( p_item in apex_plugin.t_page_item, p_plugin in apex_plugin.t_plugin, p_value in varchar2,

function custom_checkbox (pPageItemName, pOptions)

{

var g$Checkbox = $('#' + pPageItemName),

g$Hidden = $('#' + pPageItemName + '_HIDDEN');

function syncHiddenField() {

g$Hidden.val((g$Checkbox.is(':checked') === true) ?

pOptions.checked :

pOptions.unchecked);

};

...

};

Page 43: APEX 5 plugins for everyone - nlOUG · PDF filefunction render ( p_item in apex_plugin.t_page_item, p_plugin in apex_plugin.t_plugin, p_value in varchar2,

function custom_checkbox (pPageItemName, pOptions)

{

var g$Checkbox = $('#' + pPageItemName),

g$Hidden = $('#' + pPageItemName + '_HIDDEN');

function syncHiddenField() {

g$Hidden.val((g$Checkbox.is(':checked') === true) ?

pOptions.checked :

pOptions.unchecked);

};

...

};

Page 44: APEX 5 plugins for everyone - nlOUG · PDF filefunction render ( p_item in apex_plugin.t_page_item, p_plugin in apex_plugin.t_plugin, p_value in varchar2,

function custom_checkbox (pPageItemName, pOptions)

{

var g$Checkbox = $('#' + pPageItemName),

g$Hidden = $('#' + pPageItemName + '_HIDDEN');

function syncHiddenField() {

g$Hidden.val((g$Checkbox.is(':checked') === true) ?

pOptions.checked :

pOptions.unchecked);

};

...

};

Page 45: APEX 5 plugins for everyone - nlOUG · PDF filefunction render ( p_item in apex_plugin.t_page_item, p_plugin in apex_plugin.t_plugin, p_value in varchar2,

function custom_checkbox (pPageItemName, pOptions)

{

var g$Checkbox = $('#' + pPageItemName),

g$Hidden = $('#' + pPageItemName + '_HIDDEN');

function syncHiddenField() {

g$Hidden.val((g$Checkbox.is(':checked') === true) ?

pOptions.checked :

pOptions.unchecked);

};

...

};

Page 46: APEX 5 plugins for everyone - nlOUG · PDF filefunction render ( p_item in apex_plugin.t_page_item, p_plugin in apex_plugin.t_plugin, p_value in varchar2,

function custom_checkbox (pPageItemName, pOptions)

{

...

$('#' + pPageItemName).change(syncHiddenField);

...

};

Page 47: APEX 5 plugins for everyone - nlOUG · PDF filefunction render ( p_item in apex_plugin.t_page_item, p_plugin in apex_plugin.t_plugin, p_value in varchar2,

function custom_checkbox (pPageItemName, pOptions)

{

...

apex.widget.initPageItem(pPageItemName, {

setValue: function(pValue) {

g$Checkbox.attr('checked'

,(pValue === pOptions.checked));

syncHiddenField();

},

getValue:function() {

return g$Hidden.val();

}

});

};

Page 48: APEX 5 plugins for everyone - nlOUG · PDF filefunction render ( p_item in apex_plugin.t_page_item, p_plugin in apex_plugin.t_plugin, p_value in varchar2,

function custom_checkbox (pPageItemName, pOptions)

{

...

apex.widget.initPageItem(pPageItemName, {

setValue: function(pValue) {

g$Checkbox.attr('checked'

,(pValue === pOptions.checked));

syncHiddenField();

},

getValue:function() {

return g$Hidden.val();

}

});

};

Page 49: APEX 5 plugins for everyone - nlOUG · PDF filefunction render ( p_item in apex_plugin.t_page_item, p_plugin in apex_plugin.t_plugin, p_value in varchar2,

function custom_checkbox (pPageItemName, pOptions)

{

...

apex.widget.initPageItem(pPageItemName, {

setValue: function(pValue) {

g$Checkbox.attr('checked'

,(pValue === pOptions.checked));

syncHiddenField();

},

getValue:function() {

return g$Hidden.val();

}

});

};

Page 50: APEX 5 plugins for everyone - nlOUG · PDF filefunction render ( p_item in apex_plugin.t_page_item, p_plugin in apex_plugin.t_plugin, p_value in varchar2,
Page 51: APEX 5 plugins for everyone - nlOUG · PDF filefunction render ( p_item in apex_plugin.t_page_item, p_plugin in apex_plugin.t_plugin, p_value in varchar2,
Page 52: APEX 5 plugins for everyone - nlOUG · PDF filefunction render ( p_item in apex_plugin.t_page_item, p_plugin in apex_plugin.t_plugin, p_value in varchar2,
Page 53: APEX 5 plugins for everyone - nlOUG · PDF filefunction render ( p_item in apex_plugin.t_page_item, p_plugin in apex_plugin.t_plugin, p_value in varchar2,
Page 54: APEX 5 plugins for everyone - nlOUG · PDF filefunction render ( p_item in apex_plugin.t_page_item, p_plugin in apex_plugin.t_plugin, p_value in varchar2,
Page 55: APEX 5 plugins for everyone - nlOUG · PDF filefunction render ( p_item in apex_plugin.t_page_item, p_plugin in apex_plugin.t_plugin, p_value in varchar2,
Page 56: APEX 5 plugins for everyone - nlOUG · PDF filefunction render ( p_item in apex_plugin.t_page_item, p_plugin in apex_plugin.t_plugin, p_value in varchar2,
Page 57: APEX 5 plugins for everyone - nlOUG · PDF filefunction render ( p_item in apex_plugin.t_page_item, p_plugin in apex_plugin.t_plugin, p_value in varchar2,
Page 58: APEX 5 plugins for everyone - nlOUG · PDF filefunction render ( p_item in apex_plugin.t_page_item, p_plugin in apex_plugin.t_plugin, p_value in varchar2,
Page 59: APEX 5 plugins for everyone - nlOUG · PDF filefunction render ( p_item in apex_plugin.t_page_item, p_plugin in apex_plugin.t_plugin, p_value in varchar2,
Page 60: APEX 5 plugins for everyone - nlOUG · PDF filefunction render ( p_item in apex_plugin.t_page_item, p_plugin in apex_plugin.t_plugin, p_value in varchar2,
Page 61: APEX 5 plugins for everyone - nlOUG · PDF filefunction render ( p_item in apex_plugin.t_page_item, p_plugin in apex_plugin.t_plugin, p_value in varchar2,
Page 62: APEX 5 plugins for everyone - nlOUG · PDF filefunction render ( p_item in apex_plugin.t_page_item, p_plugin in apex_plugin.t_plugin, p_value in varchar2,
Page 63: APEX 5 plugins for everyone - nlOUG · PDF filefunction render ( p_item in apex_plugin.t_page_item, p_plugin in apex_plugin.t_plugin, p_value in varchar2,

function <name of function> (

p_item in apex_plugin.t_page_item,

p_plugin in apex_plugin.t_plugin,

p_value in varchar2,

p_is_readonly in boolean,

p_is_printer_friendly in boolean

) return apex_plugin.t_page_item_render_result

Page 64: APEX 5 plugins for everyone - nlOUG · PDF filefunction render ( p_item in apex_plugin.t_page_item, p_plugin in apex_plugin.t_plugin, p_value in varchar2,

function <name of function> (

p_item in apex_plugin.t_page_item,

p_plugin in apex_plugin.t_plugin,

p_value in varchar2,

p_is_readonly in boolean,

p_is_printer_friendly in boolean

) return apex_plugin.t_page_item_render_result

Page 65: APEX 5 plugins for everyone - nlOUG · PDF filefunction render ( p_item in apex_plugin.t_page_item, p_plugin in apex_plugin.t_plugin, p_value in varchar2,

function <name of function> (

p_item in apex_plugin.t_page_item,

p_plugin in apex_plugin.t_plugin,

p_value in varchar2,

p_is_readonly in boolean,

p_is_printer_friendly in boolean

) return apex_plugin.t_page_item_render_result

Page 66: APEX 5 plugins for everyone - nlOUG · PDF filefunction render ( p_item in apex_plugin.t_page_item, p_plugin in apex_plugin.t_plugin, p_value in varchar2,

function <name of function> (

p_item in apex_plugin.t_page_item,

p_plugin in apex_plugin.t_plugin,

p_value in varchar2,

p_is_readonly in boolean,

p_is_printer_friendly in boolean

) return apex_plugin.t_page_item_render_result

Page 67: APEX 5 plugins for everyone - nlOUG · PDF filefunction render ( p_item in apex_plugin.t_page_item, p_plugin in apex_plugin.t_plugin, p_value in varchar2,

function <name of function> (

p_item in apex_plugin.t_page_item,

p_plugin in apex_plugin.t_plugin,

p_value in varchar2,

p_is_readonly in boolean,

p_is_printer_friendly in boolean

) return apex_plugin.t_page_item_render_result

Page 68: APEX 5 plugins for everyone - nlOUG · PDF filefunction render ( p_item in apex_plugin.t_page_item, p_plugin in apex_plugin.t_plugin, p_value in varchar2,

function <name of function> (

p_item in apex_plugin.t_page_item,

p_plugin in apex_plugin.t_plugin,

p_value in varchar2,

p_is_readonly in boolean,

p_is_printer_friendly in boolean

) return apex_plugin.t_page_item_render_result

Page 69: APEX 5 plugins for everyone - nlOUG · PDF filefunction render ( p_item in apex_plugin.t_page_item, p_plugin in apex_plugin.t_plugin, p_value in varchar2,

function <name of function> (

p_item in apex_plugin.t_page_item,

p_plugin in apex_plugin.t_plugin,

p_value in varchar2,

p_is_readonly in boolean,

p_is_printer_friendly in boolean

) return apex_plugin.t_page_item_render_result

Page 70: APEX 5 plugins for everyone - nlOUG · PDF filefunction render ( p_item in apex_plugin.t_page_item, p_plugin in apex_plugin.t_plugin, p_value in varchar2,

function render (

p_item in apex_plugin.t_page_item,

p_plugin in apex_plugin.t_plugin,

p_value in varchar2,

p_is_readonly in boolean,

p_is_printer_friendly in boolean)

return apex_plugin.t_page_item_render_result is

begin

...

end render;

Page 71: APEX 5 plugins for everyone - nlOUG · PDF filefunction render ( p_item in apex_plugin.t_page_item, p_plugin in apex_plugin.t_plugin, p_value in varchar2,

function render (

p_item in apex_plugin.t_page_item,

p_plugin in apex_plugin.t_plugin,

p_value in varchar2,

p_is_readonly in boolean,

p_is_printer_friendly in boolean)

return apex_plugin.t_page_item_render_result is

--Use named variables

--instead of the generic attribute variables

l_checked_value varchar2(255) := nvl(p_item.attribute_01

,'On');

l_unchecked_value varchar2(255) := p_item.attribute_02;

l_checked_label varchar2(4000) := p_item.attribute_03;

begin

...

end render;

Page 72: APEX 5 plugins for everyone - nlOUG · PDF filefunction render ( p_item in apex_plugin.t_page_item, p_plugin in apex_plugin.t_plugin, p_value in varchar2,

function render (

p_item in apex_plugin.t_page_item,

p_plugin in apex_plugin.t_plugin,

p_value in varchar2,

p_is_readonly in boolean,

p_is_printer_friendly in boolean)

return apex_plugin.t_page_item_render_result is

--Use named variables

--instead of the generic attribute variables

l_checked_value varchar2(255) := nvl(p_item.attribute_01

,'On');

l_unchecked_value varchar2(255) := p_item.attribute_02;

l_checked_label varchar2(4000) := p_item.attribute_03;

begin

...

end render;

Page 73: APEX 5 plugins for everyone - nlOUG · PDF filefunction render ( p_item in apex_plugin.t_page_item, p_plugin in apex_plugin.t_plugin, p_value in varchar2,

function render (

p_item in apex_plugin.t_page_item,

p_plugin in apex_plugin.t_plugin,

p_value in varchar2,

p_is_readonly in boolean,

p_is_printer_friendly in boolean)

return apex_plugin.t_page_item_render_result is

--Use named variables

--instead of the generic attribute variables

l_checked_value varchar2(255) := nvl(p_item.attribute_01

,'On');

l_unchecked_value varchar2(255) := p_item.attribute_02;

l_checked_label varchar2(4000) := p_item.attribute_03;

begin

...

end render;

Page 74: APEX 5 plugins for everyone - nlOUG · PDF filefunction render ( p_item in apex_plugin.t_page_item, p_plugin in apex_plugin.t_plugin, p_value in varchar2,
Page 75: APEX 5 plugins for everyone - nlOUG · PDF filefunction render ( p_item in apex_plugin.t_page_item, p_plugin in apex_plugin.t_plugin, p_value in varchar2,
Page 76: APEX 5 plugins for everyone - nlOUG · PDF filefunction render ( p_item in apex_plugin.t_page_item, p_plugin in apex_plugin.t_plugin, p_value in varchar2,

custom_checkbox.js

Page 77: APEX 5 plugins for everyone - nlOUG · PDF filefunction render ( p_item in apex_plugin.t_page_item, p_plugin in apex_plugin.t_plugin, p_value in varchar2,

begin

...

-- Add the JavaScript library

apex_javascript.add_library(

p_name => 'custom_checkbox'

,p_directory => p_plugin.file_prefix ||

'javascript/'

,p_version => null

);

...

end render;

Page 78: APEX 5 plugins for everyone - nlOUG · PDF filefunction render ( p_item in apex_plugin.t_page_item, p_plugin in apex_plugin.t_plugin, p_value in varchar2,

-- Add the JavaScript library

apex_javascript.add_library(

p_name => 'custom_checkbox'

,p_directory => p_plugin.file_prefix ||

'javascript/'

,p_version => null

);

Page 79: APEX 5 plugins for everyone - nlOUG · PDF filefunction render ( p_item in apex_plugin.t_page_item, p_plugin in apex_plugin.t_plugin, p_value in varchar2,

custom_checkbox ('P1_PLUGIN_CHECK'

,{'unchecked':'Off','checked':'On'});

function custom_checkbox (pPageItemName, pOptions){...};

Page 80: APEX 5 plugins for everyone - nlOUG · PDF filefunction render ( p_item in apex_plugin.t_page_item, p_plugin in apex_plugin.t_plugin, p_value in varchar2,

pPageItemName

apex_javascript.add_value(p_item.name)

'P1_PLUGIN_CHECK',

Page 81: APEX 5 plugins for everyone - nlOUG · PDF filefunction render ( p_item in apex_plugin.t_page_item, p_plugin in apex_plugin.t_plugin, p_value in varchar2,

pOptions

apex_javascript.add_attribute('unchecked'

,l_unchecked_value

,false)

'unchecked':'Off',

Page 82: APEX 5 plugins for everyone - nlOUG · PDF filefunction render ( p_item in apex_plugin.t_page_item, p_plugin in apex_plugin.t_plugin, p_value in varchar2,

begin

...

-- Add the call to initialize the widget

l_code := 'custom_checkbox(' ||

apex_javascript.add_value(p_item.name) || '{' ||

apex_javascript.add_attribute('unchecked'

,l_unchecked_value

,false) ||

apex_javascript.add_attribute('checked'

,l_checked_value

,false

,false) || '});';

apex_javascript.add_onload_code(p_code => l_code);

...

end render;

Page 83: APEX 5 plugins for everyone - nlOUG · PDF filefunction render ( p_item in apex_plugin.t_page_item, p_plugin in apex_plugin.t_plugin, p_value in varchar2,

begin

...

-- Add the call to initialize the widget

l_code := 'custom_checkbox(' ||

apex_javascript.add_value(p_item.name) || '{' ||

apex_javascript.add_attribute('unchecked'

,l_unchecked_value

,false) ||

apex_javascript.add_attribute('checked'

,l_checked_value

,false

,false) || '});';

apex_javascript.add_onload_code(p_code => l_code);

...

end render;

Page 84: APEX 5 plugins for everyone - nlOUG · PDF filefunction render ( p_item in apex_plugin.t_page_item, p_plugin in apex_plugin.t_plugin, p_value in varchar2,

begin

...

-- Add the call to initialize the widget

l_code := 'custom_checkbox(' ||

apex_javascript.add_value(p_item.name) || '{' ||

apex_javascript.add_attribute('unchecked'

,l_unchecked_value

,false) ||

apex_javascript.add_attribute('checked'

,l_checked_value

,false

,false) || '});';

apex_javascript.add_onload_code(p_code => l_code);

...

end render;

Page 85: APEX 5 plugins for everyone - nlOUG · PDF filefunction render ( p_item in apex_plugin.t_page_item, p_plugin in apex_plugin.t_plugin, p_value in varchar2,

begin

...

-- Add the call to initialize the widget

l_code := 'custom_checkbox(' ||

apex_javascript.add_value(p_item.name) || '{' ||

apex_javascript.add_attribute('unchecked'

,l_unchecked_value

,false) ||

apex_javascript.add_attribute('checked'

,l_checked_value

,false

,false) || '});';

apex_javascript.add_onload_code(p_code => l_code);

...

end render;

Page 86: APEX 5 plugins for everyone - nlOUG · PDF filefunction render ( p_item in apex_plugin.t_page_item, p_plugin in apex_plugin.t_plugin, p_value in varchar2,

begin

...

-- Add the call to initialize the widget

l_code := 'custom_checkbox(' ||

apex_javascript.add_value(p_item.name) || '{' ||

apex_javascript.add_attribute('unchecked'

,l_unchecked_value

,false) ||

apex_javascript.add_attribute('checked'

,l_checked_value

,false

,false) || '});';

apex_javascript.add_onload_code(p_code => l_code);

...

end render;

Page 87: APEX 5 plugins for everyone - nlOUG · PDF filefunction render ( p_item in apex_plugin.t_page_item, p_plugin in apex_plugin.t_plugin, p_value in varchar2,

begin

...

-- Add the call to initialize the widget

l_code := 'custom_checkbox(' ||

apex_javascript.add_value(p_item.name) || '{' ||

apex_javascript.add_attribute('unchecked'

,l_unchecked_value

,false) ||

apex_javascript.add_attribute('checked'

,l_checked_value

,false

,false) || '});';

apex_javascript.add_onload_code(p_code => l_code);

...

end render;

Page 88: APEX 5 plugins for everyone - nlOUG · PDF filefunction render ( p_item in apex_plugin.t_page_item, p_plugin in apex_plugin.t_plugin, p_value in varchar2,

custom_checkbox ('P1_PLUGIN_CHECK'

,{'unchecked':'Off','checked':'On'});

Page 89: APEX 5 plugins for everyone - nlOUG · PDF filefunction render ( p_item in apex_plugin.t_page_item, p_plugin in apex_plugin.t_plugin, p_value in varchar2,
Page 90: APEX 5 plugins for everyone - nlOUG · PDF filefunction render ( p_item in apex_plugin.t_page_item, p_plugin in apex_plugin.t_plugin, p_value in varchar2,

<input type="hidden"

id="P1_PLUGIN_CHECK_HIDDEN"

name="p_t01"

value="Off" />

<input type="checkbox"

id="P1_PLUGIN_CHECK"

class="custom_checkbox"

value="" />

<label for="P1_PLUGIN_CHECK">Does this work?</label>

Page 91: APEX 5 plugins for everyone - nlOUG · PDF filefunction render ( p_item in apex_plugin.t_page_item, p_plugin in apex_plugin.t_plugin, p_value in varchar2,

sys.htp.prn()

<input type="hidden"

id="P1_PLUGIN_CHECK_HIDDEN"

name="p_t01"

value="Off" />

Page 92: APEX 5 plugins for everyone - nlOUG · PDF filefunction render ( p_item in apex_plugin.t_page_item, p_plugin in apex_plugin.t_plugin, p_value in varchar2,

begin

...

-- Get the name of the page item

l_name := apex_plugin.get_input_name_for_page_item(false);

-- Render the hidden field

-- which actually stores the checkbox value

sys.htp.prn('<input type="hidden" ' ||

'id="' || p_item.name || '_HIDDEN" ' ||

'name="' || l_name || '" ' ||

'value="' || p_value || '" />');

...

end render;

Page 93: APEX 5 plugins for everyone - nlOUG · PDF filefunction render ( p_item in apex_plugin.t_page_item, p_plugin in apex_plugin.t_plugin, p_value in varchar2,

begin

...

-- Get the name of the page item

l_name := apex_plugin.get_input_name_for_page_item(false);

-- Render the hidden field

-- which actually stores the checkbox value

sys.htp.prn('<input type="hidden" ' ||

'id="' || p_item.name || '_HIDDEN" ' ||

'name="' || l_name || '" ' ||

'value="' || p_value || '" />');

...

end render;

Page 94: APEX 5 plugins for everyone - nlOUG · PDF filefunction render ( p_item in apex_plugin.t_page_item, p_plugin in apex_plugin.t_plugin, p_value in varchar2,

begin

...

-- Get the name of the page item

l_name := apex_plugin.get_input_name_for_page_item(false);

-- Render the hidden field

-- which actually stores the checkbox value

sys.htp.prn('<input type="hidden" ' ||

'id="' || p_item.name || '_HIDDEN" ' ||

'name="' || l_name || '" ' ||

'value="' || p_value || '" />');

...

end render;

Page 95: APEX 5 plugins for everyone - nlOUG · PDF filefunction render ( p_item in apex_plugin.t_page_item, p_plugin in apex_plugin.t_plugin, p_value in varchar2,

begin

...

-- Get the name of the page item

l_name := apex_plugin.get_input_name_for_page_item(false);

-- Render the hidden field

-- which actually stores the checkbox value

sys.htp.prn('<input type="hidden" ' ||

'id="' || p_item.name || '_HIDDEN" ' ||

'name="' || l_name || '" ' ||

'value="' || p_value || '" />');

...

end render;

Page 96: APEX 5 plugins for everyone - nlOUG · PDF filefunction render ( p_item in apex_plugin.t_page_item, p_plugin in apex_plugin.t_plugin, p_value in varchar2,

begin

...

-- Get the name of the page item

l_name := apex_plugin.get_input_name_for_page_item(false);

-- Render the hidden field

-- which actually stores the checkbox value

sys.htp.prn('<input type="hidden" ' ||

'id="' || p_item.name || '_HIDDEN" ' ||

'name="' || l_name || '" ' ||

'value="' || p_value || '" />');

...

end render;

Page 97: APEX 5 plugins for everyone - nlOUG · PDF filefunction render ( p_item in apex_plugin.t_page_item, p_plugin in apex_plugin.t_plugin, p_value in varchar2,

sys.htp.prn()

<input type="checkbox"

id="P1_PLUGIN_CHECK"

class="custom_checkbox"

value="" />

Page 98: APEX 5 plugins for everyone - nlOUG · PDF filefunction render ( p_item in apex_plugin.t_page_item, p_plugin in apex_plugin.t_plugin, p_value in varchar2,

begin

...

-- render the checkbox widget

sys.htp.prn('<input type="checkbox" ' ||

'id="' || p_item.name || '" ' ||

'value="' || p_value || '" ' ||

case

when p_value = l_checked_value

then 'checked="checked" '

end ||

coalesce(p_item.element_attributes

,'class="simple_checkbox"') || ' />');

...

end render;

Page 99: APEX 5 plugins for everyone - nlOUG · PDF filefunction render ( p_item in apex_plugin.t_page_item, p_plugin in apex_plugin.t_plugin, p_value in varchar2,

begin

...

-- render the checkbox widget

sys.htp.prn('<input type="checkbox" ' ||

'id="' || p_item.name || '" ' ||

'value="' || p_value || '" ' ||

case

when p_value = l_checked_value

then 'checked="checked" '

end ||

coalesce(p_item.element_attributes

,'class="simple_checkbox"') || ' />');

...

end render;

Page 100: APEX 5 plugins for everyone - nlOUG · PDF filefunction render ( p_item in apex_plugin.t_page_item, p_plugin in apex_plugin.t_plugin, p_value in varchar2,

begin

...

-- render the checkbox widget

sys.htp.prn('<input type="checkbox" ' ||

'id="' || p_item.name || '" ' ||

'value="' || p_value || '" ' ||

case

when p_value = l_checked_value

then 'checked="checked" '

end ||

coalesce(p_item.element_attributes

,'class="simple_checkbox"') || ' />');

...

end render;

Page 101: APEX 5 plugins for everyone - nlOUG · PDF filefunction render ( p_item in apex_plugin.t_page_item, p_plugin in apex_plugin.t_plugin, p_value in varchar2,

begin

...

-- render the checkbox widget

sys.htp.prn('<input type="checkbox" ' ||

'id="' || p_item.name || '" ' ||

'value="' || p_value || '" ' ||

case

when p_value = l_checked_value

then 'checked="checked" '

end ||

coalesce(p_item.element_attributes

,'class="simple_checkbox"') || ' />');

...

end render;

Page 102: APEX 5 plugins for everyone - nlOUG · PDF filefunction render ( p_item in apex_plugin.t_page_item, p_plugin in apex_plugin.t_plugin, p_value in varchar2,

begin

...

-- render the checkbox widget

sys.htp.prn('<input type="checkbox" ' ||

'id="' || p_item.name || '" ' ||

'value="' || p_value || '" ' ||

case

when p_value = l_checked_value

then 'checked="checked" '

end ||

coalesce(p_item.element_attributes

,'class="simple_checkbox"') || ' />');

...

end render;

Page 103: APEX 5 plugins for everyone - nlOUG · PDF filefunction render ( p_item in apex_plugin.t_page_item, p_plugin in apex_plugin.t_plugin, p_value in varchar2,

sys.htp.prn()

<label for="P1_PLUGIN_CHECK">Does this work?</label>

Page 104: APEX 5 plugins for everyone - nlOUG · PDF filefunction render ( p_item in apex_plugin.t_page_item, p_plugin in apex_plugin.t_plugin, p_value in varchar2,

function render (...)

return apex_plugin.t_page_item_render_result is

l_result apex_plugin.t_page_item_render_result;

begin

...

return l_result;

end render;

Page 105: APEX 5 plugins for everyone - nlOUG · PDF filefunction render ( p_item in apex_plugin.t_page_item, p_plugin in apex_plugin.t_plugin, p_value in varchar2,
Page 106: APEX 5 plugins for everyone - nlOUG · PDF filefunction render ( p_item in apex_plugin.t_page_item, p_plugin in apex_plugin.t_plugin, p_value in varchar2,
Page 107: APEX 5 plugins for everyone - nlOUG · PDF filefunction render ( p_item in apex_plugin.t_page_item, p_plugin in apex_plugin.t_plugin, p_value in varchar2,
Page 108: APEX 5 plugins for everyone - nlOUG · PDF filefunction render ( p_item in apex_plugin.t_page_item, p_plugin in apex_plugin.t_plugin, p_value in varchar2,
Page 109: APEX 5 plugins for everyone - nlOUG · PDF filefunction render ( p_item in apex_plugin.t_page_item, p_plugin in apex_plugin.t_plugin, p_value in varchar2,
Page 110: APEX 5 plugins for everyone - nlOUG · PDF filefunction render ( p_item in apex_plugin.t_page_item, p_plugin in apex_plugin.t_plugin, p_value in varchar2,

DEM

Page 111: APEX 5 plugins for everyone - nlOUG · PDF filefunction render ( p_item in apex_plugin.t_page_item, p_plugin in apex_plugin.t_plugin, p_value in varchar2,

Plug-in Repository

Create from scratch

Copy of existing Plug-in

Page 112: APEX 5 plugins for everyone - nlOUG · PDF filefunction render ( p_item in apex_plugin.t_page_item, p_plugin in apex_plugin.t_plugin, p_value in varchar2,

Copy of existing Plug-in

Page 113: APEX 5 plugins for everyone - nlOUG · PDF filefunction render ( p_item in apex_plugin.t_page_item, p_plugin in apex_plugin.t_plugin, p_value in varchar2,

on off

Page 114: APEX 5 plugins for everyone - nlOUG · PDF filefunction render ( p_item in apex_plugin.t_page_item, p_plugin in apex_plugin.t_plugin, p_value in varchar2,

on off

Page 115: APEX 5 plugins for everyone - nlOUG · PDF filefunction render ( p_item in apex_plugin.t_page_item, p_plugin in apex_plugin.t_plugin, p_value in varchar2,

.fancy_checkbox { width: 80px; height: 26px; background: #333; margin: 20px auto; position: relative; border-radius: 50px; box-shadow: inset 0px 1px 1px rgba(0, 0, 0, 0.5), 0px 1px 0px rgba(255, 255, 255, 0.2); }

Page 116: APEX 5 plugins for everyone - nlOUG · PDF filefunction render ( p_item in apex_plugin.t_page_item, p_plugin in apex_plugin.t_plugin, p_value in varchar2,

.fancy_checkbox:after { content: 'OFF'; color: #000; position: absolute; right: 10px; z-index: 0; font: 12px/26px Arial, sans-serif; font-weight: bold; text-shadow: 1px 1px 0px rgba(255, 255, 255, 0.15); }

Page 117: APEX 5 plugins for everyone - nlOUG · PDF filefunction render ( p_item in apex_plugin.t_page_item, p_plugin in apex_plugin.t_plugin, p_value in varchar2,

.fancy_checkbox:before { content: 'ON'; color: #27ae60; position: absolute; left: 10px; z-index: 0; font: 12px/26px Arial, sans-serif; font-weight: bold; }

Page 118: APEX 5 plugins for everyone - nlOUG · PDF filefunction render ( p_item in apex_plugin.t_page_item, p_plugin in apex_plugin.t_plugin, p_value in varchar2,

.fancy_checkbox label { display: block; width: 34px; height: 20px; cursor: pointer; position: absolute; top: 3px; left: 3px; z-index: 1; background: #fcfff4; background: -webkit-linear-gradient(top, #fcfff4 0%, #dfe5d7 40%, #b3bead 100%); background: linear-gradient(top, #fcfff4 0%, #dfe5d7 40%, #b3bead 100%); border-radius: 50px; -webkit-transition: all 0.4s ease; transition: all 0.4s ease; box-shadow: 0px 2px 5px 0px rgba(0, 0, 0, 0.3); }

Page 119: APEX 5 plugins for everyone - nlOUG · PDF filefunction render ( p_item in apex_plugin.t_page_item, p_plugin in apex_plugin.t_plugin, p_value in varchar2,

.fancy_checkbox input[type=checkbox] { visibility: hidden; } .fancy_checkbox input[type=checkbox]:checked + label { left: 43px; }

Page 120: APEX 5 plugins for everyone - nlOUG · PDF filefunction render ( p_item in apex_plugin.t_page_item, p_plugin in apex_plugin.t_plugin, p_value in varchar2,

<input type="checkbox"

id="P1_PLUGIN_CHECK"

class="custom_checkbox"

value="" />

<label for="P1_PLUGIN_CHECK">Does this work?</label>

Page 121: APEX 5 plugins for everyone - nlOUG · PDF filefunction render ( p_item in apex_plugin.t_page_item, p_plugin in apex_plugin.t_plugin, p_value in varchar2,

<div class="fancy_checkbox">

<input type="checkbox"

id="P1_PLUGIN_CHECK"

class="custom_checkbox"

value="" />

<label for="P1_PLUGIN_CHECK">Does this work?</label>

</div>

Page 122: APEX 5 plugins for everyone - nlOUG · PDF filefunction render ( p_item in apex_plugin.t_page_item, p_plugin in apex_plugin.t_plugin, p_value in varchar2,
Page 123: APEX 5 plugins for everyone - nlOUG · PDF filefunction render ( p_item in apex_plugin.t_page_item, p_plugin in apex_plugin.t_plugin, p_value in varchar2,
Page 124: APEX 5 plugins for everyone - nlOUG · PDF filefunction render ( p_item in apex_plugin.t_page_item, p_plugin in apex_plugin.t_plugin, p_value in varchar2,
Page 125: APEX 5 plugins for everyone - nlOUG · PDF filefunction render ( p_item in apex_plugin.t_page_item, p_plugin in apex_plugin.t_plugin, p_value in varchar2,
Page 126: APEX 5 plugins for everyone - nlOUG · PDF filefunction render ( p_item in apex_plugin.t_page_item, p_plugin in apex_plugin.t_plugin, p_value in varchar2,

begin

...

-- render the checkbox widget

sys.htp.prn('<div class="fancy_checkbox"> ' ||

'<input type="checkbox" ' ||

'id="' || p_item.name || '" ' ||

'value="' || p_value || '" ' ||

case

when p_value = l_checked_value

then 'checked="checked" '

end ||

coalesce(p_item.element_attributes

,'class="simple_checkbox"') || ' />');

...

end render;

Page 127: APEX 5 plugins for everyone - nlOUG · PDF filefunction render ( p_item in apex_plugin.t_page_item, p_plugin in apex_plugin.t_plugin, p_value in varchar2,

begin

...

-- print label after checkbox

sys.htp.prn('<label for="' || p_item.name || '">' ||

l_checked_label || '</label>');

sys.htp.prn('</div>');

...

end render;

Page 128: APEX 5 plugins for everyone - nlOUG · PDF filefunction render ( p_item in apex_plugin.t_page_item, p_plugin in apex_plugin.t_plugin, p_value in varchar2,
Page 129: APEX 5 plugins for everyone - nlOUG · PDF filefunction render ( p_item in apex_plugin.t_page_item, p_plugin in apex_plugin.t_plugin, p_value in varchar2,

fancy_checkbox.css

Page 130: APEX 5 plugins for everyone - nlOUG · PDF filefunction render ( p_item in apex_plugin.t_page_item, p_plugin in apex_plugin.t_plugin, p_value in varchar2,
Page 131: APEX 5 plugins for everyone - nlOUG · PDF filefunction render ( p_item in apex_plugin.t_page_item, p_plugin in apex_plugin.t_plugin, p_value in varchar2,
Page 132: APEX 5 plugins for everyone - nlOUG · PDF filefunction render ( p_item in apex_plugin.t_page_item, p_plugin in apex_plugin.t_plugin, p_value in varchar2,

begin

...

-- Add the css file

apex_css.add_file(

p_name => 'fancy_checkbox'

,p_directory => p_plugin.file_prefix ||

'css/'

);

...

end render;

Page 133: APEX 5 plugins for everyone - nlOUG · PDF filefunction render ( p_item in apex_plugin.t_page_item, p_plugin in apex_plugin.t_plugin, p_value in varchar2,

-- Add the css file

apex_css.add_file(

p_name => 'fancy_checkbox'

,p_directory => p_plugin.file_prefix ||

'css/'

);

Page 134: APEX 5 plugins for everyone - nlOUG · PDF filefunction render ( p_item in apex_plugin.t_page_item, p_plugin in apex_plugin.t_plugin, p_value in varchar2,
Page 135: APEX 5 plugins for everyone - nlOUG · PDF filefunction render ( p_item in apex_plugin.t_page_item, p_plugin in apex_plugin.t_plugin, p_value in varchar2,

DEM

Page 136: APEX 5 plugins for everyone - nlOUG · PDF filefunction render ( p_item in apex_plugin.t_page_item, p_plugin in apex_plugin.t_plugin, p_value in varchar2,

Plug-in Repository

Create from scratch

Copy of existing Plug-in

Page 137: APEX 5 plugins for everyone - nlOUG · PDF filefunction render ( p_item in apex_plugin.t_page_item, p_plugin in apex_plugin.t_plugin, p_value in varchar2,
Page 138: APEX 5 plugins for everyone - nlOUG · PDF filefunction render ( p_item in apex_plugin.t_page_item, p_plugin in apex_plugin.t_plugin, p_value in varchar2,
Page 139: APEX 5 plugins for everyone - nlOUG · PDF filefunction render ( p_item in apex_plugin.t_page_item, p_plugin in apex_plugin.t_plugin, p_value in varchar2,

https://apex.world

http://apex-plugin.com

Page 140: APEX 5 plugins for everyone - nlOUG · PDF filefunction render ( p_item in apex_plugin.t_page_item, p_plugin in apex_plugin.t_plugin, p_value in varchar2,

https://docs.oracle.com/

cd/E59726_01/index.htm

http://www.oracle.com/technetwork/

developer-tools/apex/application-

express/apex-plug-ins-182042.html

Page 141: APEX 5 plugins for everyone - nlOUG · PDF filefunction render ( p_item in apex_plugin.t_page_item, p_plugin in apex_plugin.t_plugin, p_value in varchar2,

Alan Arentsen

[email protected]

alanarentsen.blogspot.com

www.ordina.nl

Page 142: APEX 5 plugins for everyone - nlOUG · PDF filefunction render ( p_item in apex_plugin.t_page_item, p_plugin in apex_plugin.t_plugin, p_value in varchar2,

www.ordina.nl

Alan Arentsen [email protected]

alanarentsen.blogspot.com