Pretius / Pretius-APEX-Enhanced-Lov-Item

Oracle APEX plugin
MIT License
24 stars 11 forks source link

Pretius APEX Enhanced LOV item

Pretius APEX Enhanced LOV item is powerful combobox to select singular / multiple values in two modes: autocomplete and popup report. The plugin provides high customization possibilities through its attributes.

Preview

Preview gif

Table of Contents

License

MIT

Demo Application

https://apex.oracle.com/pls/apex/f?p=111865:1

Features at Glance

Roadmap

Install

Installation package

Install procedure

To successfully install the plugin follow those steps:

  1. Install package APEX_ENHANCED_LOV_ITEM in the parsing schema of your application
  2. Install the plugin file item_type_plugin_pl_ostrowskibartosz_apex_enhancedlovitem.sql

Usage Guide

  1. Create APEX item PX_NAME with type set to APEX Enhanced LOV Item [Plug-in]
  2. Provide SQL query and mark display column with alias d and return column with alias r *
  3. Explore the plugin capabilities by reading Help Texts within APEX Application Builder
  4. Configure the plugin according to your requirements

* the plugin uses aliases d and r to recognize which column should be returned and which is general display column. Don't use aliases enclosed with quote character! See example below:

select
  e.empno r,
  e.ename d,
  e.*
from
  emp e

Plugin Settings

Attributes

Detailed information about how to use every attribute of the plugin is presented in built-in help texts in APEX Application Builder.

Preview gif

Plugin Events

Atucomplete

Each autocomplete event has access through this.data to following information:

{
  "prompt": {
    "container": jQuery object, //autocomplete container
    "header"   : jQuery object, //autocomplete header with action menu
    "body"     : jQuery object, //autocomplete body containing rendered data
    "input"    : jQuery object  //autocomplete search input
  },
  "mask": {
    "selected"     : Array,  //array of already selected data
    "dataAvailable": Boolean //boolean value indicates whether there is data to render
  }
};

Popup report

Each popup report event has access through this.data to following information:

{
  "header"       : jQuery Object, //reference to container for global search, rows per page and pagination
  "container"    : jQuery Object, //reference to parent container of popup report
  "body"         : jQuery Object, //reference to body container of popup report
  "footer"       : jQuery Object, //reference to container for Show only selecte and button Select
  "pagination"   : jQuery Object, //reference to container for pagination
  "search"       : jQuery Object, //reference to input performing search in all columns
  "rowsPerPage"  : jQuery Object, //reference to select list
  "contentTable" : jQuery Object, //reference to result table of data currently rendered
  "state"        : {
    "selected"              : Array,  //Array of currently selected values in popup
    "searchString"          : String, //Currently provided search string
    "searchColumnIdx"       : Number, //Index (starting from 1) of column in SQL Query
    "sortedColumnIdx"       : Number, //Index (starting from 1) of column in SQL Query
    "sortedColumnDirection" : String, //String "asc" / "desc"
    "ajaxRunning"           : Boolean //If true then AJAX is currently running
  }
};

Translations

To add new translations use Shared Componentes> Globalization > Text Messages.

Translation code Translation text Introduced
PAELI_POPUP_SEARCH_PLACEHOLDER Enter a search term
PAELI_POPUP_BTN_SELECT_TEXT Select
PAELI_POPUP_SHOW_SELECTED_LABEL Show only selected
PAELI_POPUP_TEXT_ROWS_SELECTED All results (%0) on this page has been selected.
PAELI_POPUP_TEXT_NO_DATA_FOUND_SEARCH No data found for search term "%0".
PAELI_POPUP_TEXT_NO_DATA_FOUND_QUERY Dictionary has no data to render.
PAELI_POPUP_TEXT_CLEAR_FILTERING Click here to clear filtering.
PAELI_POPUP_TEXT_UNSAVED_CHANGES You have selected %0 values. Closing without saving will not save selected values.
PAELI_POPUP_TEXT_SEACH_IN_SELECTED You have filtered %0 row(s) from %1 selected row(s).
Click here to get back to all selected rows.
PAELI_POPUP_TEXT_FILTERED_INFO %0 results found for search term "%1".
PAELI_POPUP_TEXT_EXTRA_VALUE Value "%0" is not within dictionary.
PAELI_PROMPT_MENU_EXPAND_TITLE Show or hide all tags
PAELI_PROMPT_MENU_SORT_TITLE Sort tags
PAELI_PROMPT_MENU_CLEAR_TITLE Clear all selected values
PAELI_PROMPT_MENU_PASTE_TITLE Paste values v1.1.0
PAELI_PROMPT_MENU_POPUP_TITLE Open popup report v1.1.0
PAELI_PROMPT_TEXT_MINIMAL_INPUT_LENGTH_X Please enter %0 or more characters.
PAELI_PROMPT_TEXT_MINIMAL_INPUT_LENGTH_0 Start typing to get results.
PAELI_PROMPT_TEXT_NO_DATA_FOUND No data found.
PAELI_PROMPT_TEXT_SEARCHING Searching...
PAELI_PROMPT_TEXT_RAPID_SELECTION Start typing to select more...
PAELI_PROMPT_TEXT_LOAD_MORE Load more...
PAELI_TAGS_LIMITED_OTHERS and %0 more...
PAELI_TAGS_LIMITED_0 %0 selected
PAELI_POPUP_PAGINATION_PREV Previous
PAELI_POPUP_PAGINATION_NEXT Next
PAELI_POPUP_PAGINATION_OF of v1.1.0
PAELI_POPUP_HEADER_SORT_ASC_TITLE Sort ascending
PAELI_POPUP_HEADER_SORT_DESC_TITLE Sort descending
PAELI_POPUP_TEXT_SEARCHING Waiting for results...
PAELI_ERROR_DEBUG_OFF Please contact application administrator for more information.\nDetailed information available in debug mode. v1.1.0
PAELI_POPUP_PASTE_TEXTAREA_PLACEHOLDER Values must be separated by a newline character v1.1.0
PAELI_POPUP_PASTE_BTN_PARSE_TEXT Parse v1.1.0
PAELI_POPUP_PASTE_BTN_CLEAR_TEXT Clear v1.1.0
PAELI_POPUP_PASTE_BTN_SELECT_TEXT Apply v1.1.0
PAELI_POPUP_PASTE_BTN_BACK_TEXT Back v1.1.0
PAELI_POPUP_PASTE_SUMMARY_PASTED_COUNT Total number of pasted values v1.1.0
PAELI_POPUP_PASTE_SUMMARY_PASTED_LENGHT Total length of pasted values including separator v1.1.0
PAELI_POPUP_PASTE_SUMMARY_MAX_LENGTH Maximum length v1.1.0
PAELI_POPUP_PASTE_SUMMARY_VALUES_TO_BE_APPLIED Number of pasted values to be applied %0 v1.1.0
PAELI_POPUP_PASTE_SUMMARY_VALUES_EXCEEDING_LIMIT Number of pasted values exceeding the maximum length %0 v1.1.0
PAELI_POPUP_PASTE_SUMMARY_SHOW_LIST_ANCHOR (show list) v1.1.0
PAELI_POPUP_PASTE_SUMMARY_MAXLENGTH_NOTSET not set v1.1.0
PAELI_POPUP_PASTE_SUMMARY_TH_VALUES_OUT Values exceeding maximum length limit v1.1.0
PAELI_POPUP_PASTE_SUMMARY_TH_VALUES_IN Values ready to be applied v1.1.0
PAELI_POPUP_PASTE_SUMMARY_TH_SUMMARY Summary v1.1.0

Changelog

1.1.1

1.1.0

General

Enhancments

APEX Integration

JavaScript

PL/SQL

Bugs fixed

1.0.4

1.0.3

1.0.1, 1.0.2

minor fixes for first release

1.0.0

Initial Release

Known issues

About Author

Author Website Github Twitter E-mail
Bartosz Ostrowski http://ostrowskibartosz.pl @bostrowski @bostrowsk1 bostrowski@pretius.com, ostrowski.bartosz@gmail.com

About Pretius

Pretius Sp. z o.o. Sp. K.

Address Website E-mail
Przy Parku 2/2 Warsaw 02-384, Poland http://www.pretius.com office@pretius.com

Free support

Pretius provides free support for the plugins at the GitHub platform. We monitor raised issues, prepare fixes, and answer your questions. However, please note that we deliver the plug-ins free of charge, and therefore we will not always be able to help you immediately.

Interested in better support?

Bug reporting and change requests

Have you found a bug or have an idea of additional features that the plugin could cover? Firstly, please check the Roadmap and Known issues sections. If your case is not on the lists, please open an issue on a GitHub page following these rules:

Implementation issues

If you encounter a problem during the plug-in implementation, please check out our demo application. We do our best to describe each possible use case precisely. If you can not find a solution or your problem is different, contact us: apex-plugins@pretius.com.

Become a contributor!

We consider our plugins as genuine open source products, and we encourage you to become a contributor. Help us improve plugins by fixing bugs and developing extra features. Comment one of the opened issues or register a new one, to let others know what you are working on. When you finish, create a new pull request. We will review your code and add the changes to the repository.

By contributing to this repository, you help to build a strong APEX community. We will prioritize any issues raised by you in this and any other plugins.

Comercial support

We are happy to share our experience for free, but we also realize that sometimes response time, quick implementation, SLA, and instant release for the latest version are crucial. That’s why if you need extended support for our plug-ins, please contact us at apex-plugins@pretius.com. We offer: