v2.9 [Unreleased]
-
#706 Update Ruby to 3.2.2.
-
#725 Update Rails to 7.
-
#726 Add services select table.
-
#729 Add services select table search option.
-
#732 Allow to localize select field options.
It is possible to set translations for select field options. For example, if have this in the form config:
fields: - name: selectField type: select label: Select field choices: - Option1
you can set translations in
locales/bp/ru.my_process.yml
:selectField: label: Выпадающий список options: - Опция1
or if you have it this way:
fields: - name: selectField type: select label: Select field choices: - [option_1, 'Really long first option']
you can do it similarly:
selectField: label: Выпадающий список options: - [option_1, 'Очень длинная первая опция']
-
#731 Add columns display management option.
-
#738 Add services select table service add option.
-
#750 Support fr locale.
-
#753 Turn BPM config to a list.
-
#755 Expect a process definition key in a task notification.
-
#758 Support different BPM backends for different process types.
- #719 Use REDIS_HOST and REDIS_PORT env variables instead of REDIS_URL for actioncable.
- #757 Allow to localize description for BP form fields.
- #750 Support fr locale.
- #742 Allow to change starter groups and starter users for business process without reloading HOMS
- #748 Return false expired in case if due is null
- #726 Add services select table.
- #727 Use the latest minio version for testing and development, use RELEASE.2023-09-30T07-02-29Z for stable HOMS version.
- #715 Set auth_header in Events::TasksController
- #714 Localize select-table header.
- #712 Log SSO authentication errors with stacktrace.
-
#665 Add tooltip message translation for string field.
-
#666 Add translation for file upload field.
-
BP localization config structure was changed. Now input labels for the next field types should be placed in key "label":
checkbox
,datetime
,file_list
,file_upload
,select
,select_table
,string
,submit_button
andtext
.string
field has additional key "message" for tooltip message,file_upload
hasinput_text
andbrowse_link_text
keys.before:
stringField: Field label fileUploadField: Field label
after:
stringField: label: Field label message: Tooltip message fileUploadField: label: Field label input_text: Field text browse_link_text: Link text
-
#674 Downcase SSO key in the config & treat redis port as a number.
If you are using SSO make this change your
homs_configuration.yml
fromSSO: ... redis: host: redis_host port: '12345'
to
sso: ... redis: host: redis_host port: 12345
-
#690 Use
Bearer
instead ofToken token=
for JWT auth header.From now on HOMS HTTP API expects
Authorization
header in the following format:Bearer your.jwt.here
instead of
Token token=your.jwt.here
- #683 Localize SSO authentication error messages.
- #707 Fix warning dangerous query method.
- #708 Don't install unused activestorage gem.
- #710 Fix chromedriver link for tests.
- #750 Support fr locale.
- #742 Allow to change starter groups and starter users for business process without reloading HOMS
- #683 Add entity_type to business key.
- #683 Allow to set time in datetimepicker. Added new option for datetime field type:
False by default. If true - time input becomes available in calendar.
set_time: true|false
- #671 Cut trailing zeroes when validate number in order form.
- #660 Use scope parameter for SSO authentication.
- #662 Change scope parameter to array.
- #664 Fix hide start BP button in case of
candidate_starters
enabled.
- #659 Always show BP form deployed.
- #656 Pass initialVariables into Buttons.
- #654 Use native Keycloak roles from resource_access instead of custom user attribute.
- #653 Differentiate users from Keycloak and regular.
- #651 Add role transfering from keycloak to HOMS.
- #646 Fill user not nullable fields by default for SSO first login.
- #644 Add logging in ArcSight format at the moment of login by SSO.
- #641 Filter business processes available for launch.
-
#600 Replace bootstrap-datetimepicker with react-datepicker.
Dynamic conditions by datetime on form now strictly use ISO date format
-
#602 Use FontAwesomeIcon for icons.
- Changed customization rule for icon radio buttons and checkboxes:
hbw-checkbox-symbol
,hbw-checked-checkbox-symbol
,hbw-checked-checkbox-symbol
,hbw-radio-symbol
andhbw-checked-radio-symbol
have been removed. To select the radiobaton icon and the checkbox icon you need add to the task form field. For example:
Where first element is class for custom icon- name: CustomIconCheckbox type: checkbox label: Checkbox label 1 icon: unchecked: ['far', 'circle'] checked: ['fas', 'square']
far
,fas
,fab
. Second - name of the fontawesome icon. - Changed customization rule for business-process icon: in
hbw.yml
forfa_class
key use class and icon name. For example:
new_customer: - name: 'New Customer' title: 'Start Creating Customer' class: 'btn btn-primary' fa_class: ['fas', 'user'] bp_code: 'new_customer'
- Changed customization rule for icon radio buttons and checkboxes:
-
#607 Use
button_text
field for fallback submit-select components.For submit-select buttons was added new field
button_text
which contain a fallback for text translation. The previous behavior has been changed: the fallback onlabel
field has been replaced with thebutton_text
key. The key for translations still stored in thename
field. For example:- name: submitSelectButton type: submit_select css_class: col-xs-12 options: - name: button1 button_text: Button 1 value: Button 1 css_class: btn btn-success btn-lg
- #638 Improve SSO error messages.
- #637 Add keycloak authorization for BPM.
- #631 Add authorization by SSO (with Keycloak).
- #583 Add the output of errors for the availability of the Сamunda service to the widget.
- #562 Bring in TypeScript into the project.
- #564 Append files to form instead of substituting when multiple prop is set up.
- #575 Add custom view for files to order data.
- #571 Add dynamic
disable_if
anddelete_if
options for select_table field. - #580 Add several upload file fields for single form.
- #587 Add dynamic
disable_if
anddelete_if
options for datetime field. - #593 Add disable_if/delete_if for submit_select buttons.
- #604 Add customization for CancelProcessButton.
- #609 Add
required
property to radio_button. - #629 Update dry to 1.x.x.
- #632 Make a login form with SSO.
- #606 Allow to set Minio host through environment variable.
- #592 Replace memcached with redis.
- #586 Stub api container in tests with local api mock file and refactor tests.
- #594 Get rid of Webpacker & build all assets with Webpack 5.
- #598 Remove the mask option validation from the string order field.
- #613 Fix typo in variable to display notifications.
- #620 Add deleting users.
- #610 Log app start/stop and user login attempts in CEF.
- #611 Filter current tasks by process_key.
- #595 Fix substitution of empty values of BP variables in localized static fields.
- #597 Wrap long variable values to a new line.
- #591 Support substitutions in localized static fields.
- #577 Hide file upload area if the only possible file has been attached.
- #573 Allow to show/hide notifications about new assigned tasks.
- #567 Add customization capability for file_upload.
- #564 Append files to form instead of substituting when multiple prop is set up.
- #565 Use versions from task events & add simple tests for the store.
- #563 Generate unique id for file_upload compoment.
- #558 Add dynamic
disable_if
anddelete_if
options for radio button. - #561 Add dynamic
disable_if
anddelete_if
options for checkbox.
- #559 Customize checkboxes and radiobuttons.
-
#556 Add css variable for links color.
-
#557 Customize static fonts.
-
#560 Unify drag&drop field and browse file button.
file_upload
's field optionsdrag_and_drop
andpreview
have been removed: drag&drop aria and file preview are always displayed now.
-
#553 Forbid more than one active process instance per entity.
Now we set
businessKey
field value on BP start to${entity_class}_${entity_code}
value.At first, it's semantically correct:
businesskey
field in Camunda BPMN is definitely for the same purposes asentity_code
in HBW and it must be isolated between different host applications (entity_class
).Also it can be used for process-per-entity restriction, you just need to add corresponding constraint to Camunda DB:
alter table ACT_RU_EXECUTION add constraint ACT_UNIQ_RU_BUS_KEY UNIQUE (PROC_DEF_ID_, BUSINESS_KEY_);
⚠️ Warning! Do not reset/updatebusinessKey
manually inside your business processes, since it can lead to unexpected side effects. -
#555 Allow to start business process automatically.
You can start business process automatically (if it's not already running) by setting
autorunProcessKey
parameter on HBW initialization. Check HBW integration guide for details.
-
New options have been introduced for
file_upload
field type:-
multiple: true|false
allows to upload multiple files at once;
-
drag_n_drop: true|false
controls drag'n'drop area visibility.
It's
false
by default so that differs from old behaviour (allfile_upload
fields were multiple and had visible drag'n'drop area). Hence you should set these options totrue
to keep the old behaviour. Look at #535 for deatils -
-
[DEPRECATION] Endpoint
/widget/file_upload
is deprecated. Please use/widget/files/upload
instead.
-
#530 Customize fonts in HBW.
-
#534, #536, #543, #545, #547, #546, #548, #551 Add custom top/bottom descriptions and placeholder for components:
- string
- select
- checkbox
- datetime
- file_list(placement: top only)
- text
- file_upload
- radio_button(placement: top only)
- select_table
Now you can specify some additional description placed over/under the input for fields listed above with option:
description: placement: top|bottom text: Your description test
-
#535 Display attached files thumbnails.
Field type
file_upload
renders thubmnailed preview of uploaded files withpreview: true
flag, e.g.form: ... fields: - name: fileUploadWithPreview type: file_upload ... preview: true
-
#537 Add fileinput field name to uploaded file metadata.
-
#550 Add radio buttons.
- #538 Removed usage of rubocop-junit_formatter gem.
v2.5.1 [2021-04-08]
HBW: Change serialization of disabled, read-only and hidden fields. Now all values of these fields will not be submitted. See #296 for more details.
- #493 Add missing labels for inputs on search order form.
- #497 Handle connection error when try to print order.
- #499 Increase memory limit for worker.
- #289 Make conditions
disable_if
anddelete_if
dynamic. - #289 Add dynamic
disable_if
anddelete_if
options for select. - #510 Add i18n for business processes.
- #298 Keep BP variables values after submit if they are not on form or disabled.
- #289 Fix setting not-nullable select's value with blank variable.
- #513 Fix Camunda/PostgreSQL compatibility.
- #514 Don't validate hidden and disabled fields.
- #515 Escape single quotes, double quotes and backslashes in conditions.
- #525 Fix url for select.
- #531 Update Rails to fix
mimemagic
issue.
- #513 Fix Camunda/PostgreSQL compatibility.
- #518 Set default value for idle_in_transaction_session_timeout PG parameter.
- #494 Fix textarea height and icon in template.
- #495 Add cursor pointer for checkboxes.
- #496 Fix panel title font color and remove box shadow.
- #500 Make datetime addon border color customizable.
- #501 Allow to customize react-select.
- #498 Add css variable for text color when element is focused/selected.
- #465 Add SymlinkAssets in development mode and clean assets before every build.
- #470 Add new type of processes.
- #471 Customize submit button name.
- #491 Allow to customize form controls.
- #481 Use css variables for all colors.
- #480 Make
font-size
relative to the base. - #482 Replace similar colors.
- #486 Fix horizontal scroll in
select_table
nested togroup
. - #487 Do not crash widget when translation is missing.
- #469 Calculate delete_if/disable_if values before dependent component renders.
- #462 Restyle form control buttons.
- #452 Pass user e-mail explicitly on websocket channel subscription create.
- #446 Add cancel process button to all forms by default.
- #486 Fix horizontal scroll in
select_table
nested togroup
. - #487 Do not crash widget when translation is missing.
- #452 Pass user e-mail explicitly on websocket channel subscription create.
- #442 Turn Messenger class to importable module.
- #441 Make task search case insensitive.
- #450 Force react-select menu to overlay bootstrap form controls.
- #db74749 Use
Object.entries
returns only own object properties instead ofObject.values
.
HBW:
- Long polling has been replaced by WebSocket channels based on webhooks from Camunda BPMN. It uses task events (create, assignment, complete and delete) to notify HBW that new data should be fetched.
- #401 Wrap all widget parts to single app with store context & render app parts as portals.
- #415 Remove unused endpoint for getting tasks number.
- #419 Remove unused long polling supporting code.
- #423 Replace jquery with fetch api.
- #403 Add
ActionCable
andRedis
. - #405 Add WebSocket.
- #404 Initialize store context with full task list.
- #408 Remove capistrano.
- #406 Add hooks callback.
- #410 Use stored full task list instead of partially fetched one.
- #411 Fetch task from cache.
- #413 Add endpoint with one task able to use cache.
- #416 One-time request initial data instead of polling.
- #420 Initialize store with all data & use it in BP components.
- #429 Get task forms by entities lazy.
- #430 Apply events received while store initialization in turn.
- #450 Force react-select menu to overlay bootstrap form controls.
- #435 Add endpoint for events from Camunda.
- #435 Remove pid file on app start
- #391 Remove side menu with tasks.
Removed tasks/form
enrtypoint. Entrypoint tasks
returns tasks with form.
- #390 Add spinner on tasks loading.
- #380 Optimize getting current task.
- #379 Cache process definitions fetched from Camunda. Add
MEMCAHED_URL
field to.env
.- Notice: if you want to add new business process type you have to restart application.
- #375 Adjust new elements with existent style.
- #388 Fix widget mounting in integrations.
HBW initialization parameters were changed. Instead of
locale: 'en'
you should pass locale like
locale: {
code: 'en',
dateTimeFormat: 'MM/dd/yyyy HH:mm aaa'
}
See #367 and HBW readme for more details.
- #386 List tasks for current entity class only.
- #366 Remove claimed row in task overview.
-
select_table
withmulti:true
saves all data in JSON format now. It's not possible to open form contains old data with such table. See #300 for more details. -
hbw.yml
has new required fieldbp_name_key
– variable name from Camunda's BP, where process name is stored. See #340 for more details. -
hbw.yml
config structure was updated. Entity classes must be moved under keyentities
:before:
hbw: order: entity_code_key: homsOrderCode bp_toolbar: entity_type_buttons: {} billing_customer: entity_code_key: billingCustomerId bp_toolbar: common_buttons: [] entity_type_buttons: {}
after:
hbw: entities: order: entity_code_key: homsOrderCode bp_toolbar: common_buttons: [] entity_type_buttons: {} billing_customer: entity_code_key: billingCustomerId bp_toolbar: common_buttons: [] entity_type_buttons: {}
Look at #317 for details.
- #283 Seed improvements: add env variables for initial values
- #288 Add drag and drop field for file upload.
- #309 Add error boundaries to all form components.
- #317 Validate
hbw.yml
config. - #318 Improve scroll style in select_table.
- #327 Optimize Camunda variables fetching.
- #329 Add method for getting unassigned tasks from user's group.
- #330 Add new available tasks components to mount.
- #331 Add unassigned tasks count method.
- #334 Add my/unassigned tasks switch component.
- #333 Optimize Camunda process definitions fetching.
- #332 Add table for claiming.
- #337 Add claim button for widget page.
- #338 Add task overview component.
- #336 Update React to 16.10.2.
- #339 Add polling with pagination for claiming table.
- #344 Add component for rendering created/deadline date.
- #345 Add task search.
- #341 Add short tasks list for popup.
- #342 Create component with counter.
- #347 Improve claim buttons styles.
- #349 Change colors of priorities.
- #346 Add code coverage for backend.
- #352 Wrap task list page together.
- #351 Improve claim button styles on widget form.
- #354 Wrap task short pop up list page together.
- #353 Integrate new claiming components.
- #356 Highlight opened task in table.
- #358 Add react components unit tests for HBWDueDate and HBWCreatedDate.
- #328 Use Font Awesome 5 instead of font-awesome-rails v4.
- #316 Fix the way ajax request are made in lookup select.
- #315 Add additional exceptions for Oracle's date formats.
- #311 Fix overflow after form collapsing.
- #301 Change deprecated
render nothing: true
tohead
.
- #277 Allow to configure widget polling interval.
- #275 Set logging level from env file.
- #274 Add duration of requests logging.
- #278 Migrate from thin to unicorn.
- #284 Try to reconnect if got Oracle connection error.
- #272 Better view for multiple BP buttons.
-
Dropped
activiti
support:- changed
activiti
tocamunda
in alldocker-compose
files - removed
docker-compose.activiti.yml
- sources type
static/activiti
was renamed tostatic/bpm
inconfig/sources.yml
- key
use_activiti_stub
was renamed touse_bpm_stub
inconfig/hbw.yml
See #253 for more details.
- changed
- #248 Add Rubocop.
- #251 Update react-select up to 2.1.1.
- #253 Drop Activiti support.
- #258 Update React & ReactDOM to 16.0.0
- #259 Get number of tasks by request to Camunda.
- #268 Move validation of
select
andselect_table
to helpers. - #273 Change colors on select and hover of
select_table
. - #276 Fetch tasks for one entity by default.
- #246 Download Font Awesome when widget is loaded.
- #241 Fix chevron reaction on task collapse.
- #242 Search file_list field in nested field sets.
- #243 Fix database port config usage.
- #245 Disable business process buttons when loading.
- #247 Use internal ports in homs_network.
- #250 Fix file uploading.
- #252 Fix
select_table
behavior in multi mode. - #257 Check flag
multi
inselect_table
when select row. - #262 Fix multi nullable
select_table
. - #265 Allow nullability for
select
lookup mode. - #264 Fix required
select
with numeric value. - #267 Fix widget calendar locale.
- #270 Fix task collapse.
- #189 Show alert if form with file upload field has no file list field.
- #197 Use Camunda as BPMS in default docker-compose.
- #195 Upgrade React & ReactDOM to 15.6.2, migrate to higher order components from mixins.
- #153 Allow updating users encrypted password and salt.
- #202 Remove mount configs from docker-compose and set postgres version.
- #206 Use higher order component instead of HBWDeleteIfMixin.
- #203 Allow to unmount widget and replace some glyphicons with FontAwesome.
- #199 Move assets generation to Dockerfiles.
- #207 Remove extra locales from moment.js
- #209 Drop react-rails & react_ujs dependencies.
- #205 Use higher order component instead of HBWSelectMixin.
- #213 Add payload to widget's requests.
- #218 Pass initial BP variables to widget initial payload.
- #223 Add directories for postgresql-client.
- #227 Add
required
option for string inputs. Usenullable: false
in select/select_table for the same reason. - #230 Add disable_if condition to checkbox, datetime, file_list, select, select_table, string, text.
- #232 [DEPRECATION] Deprecate Activiti usage.
- #233 Run DB on port specified in
.env
file. - #231 Add
multi
option to select_table. - #240 Update ruby up to 2.6.0.
- #194 Set limit on the number of choices in lookup select from sql requests.
- #198 Add seed in test's logs.
- #201 Fix pointer on menu button.
- #219 Update obsolete dependencies.
- #221 Use babel-transform-runtime-plugin instead of babel-polyfill.
- #226 Fix initial variables for Activiti.
- #229 Add list of exceptions for binds, which are used for oracle's dates.
- #239 Support empty date in select_table.
- #215 Use FontAwesome instead of Glyphicons in
bootstrap-datimepicker
.
- #217 Add production as a default setting.
- #204 Pass locale for translations from environment.
- #211 Fix lookup and change multi select to single.
- #172 Do not use custom docker images for Postgres containers.
- #175 Allow using environment variables in YAML configs.
- #167 Add production docker-compose file for Oracle.
- #166, #7 Pass host, user and pass to waiting for Postgres script.
- #159 Add tagged logger.
- #169 Remove overflowing of deprecation warnings in tests.
- #161, #6 Use activiti credentials from environment variables.
- #151 Add current version to docker container.
- #151 Remove libqtwebkit-dev.
- #177 Improve README and docker-compose files.
- #171 Migrate from CoffeeScript to ES6 + Webpack.
- #179 Replace
jquery-ui
tooltip withpopper.js
. - #184 Add
base_url
option to main config provides custom prefix for all paths in app. Fixes #148. - #185 Speed up docker build.
- #188 Use
.env
file in docker-compose. - #183 Replace
Select2
withreact-select
in widget.
- #165 Remove new line from BPM widget basic auth generator.
- #174 Remove unnecessary scroll in BPM widget select tables.
- #176 Fix limits on the number of lines from sql requests.
- Changed default BPM engine from
activiti
tocamunda
. See #149 for details. Now you can set BPM engine in yourhbw.yml
. Example is inhbw.yml.sample
, keyadapter
.
- #149 Support Camunda as BPM engine.
- #146 Replace PhantomJS with Capybara Webkit.
- #133 Reduce docker images size by using
ruby:slim
. - #144 Reduce test execution time after Rails 5 upgrade.
- #147 Improve manual installation instruction.
- #135 Add
minio
image todocker-compose.yml
. - #136 Reduce production docker image size by removing
libqtwebkit
. - #156 Rename initializer.
- #154 Rename config for BPM engine.
- #5, #1 Fix activiti for homs docker image.
- #162 Make sync request for checking BPM user. Prevents BPM widget rendering failure.
- #158 Do not return empty element in case of missing BPM user.
- #157 Fix GET request headers.
- #160 Do not validate strings without pattern.
- #163 Fix getting
NUMBER
from Oracle source. - #155 Add relative paths to
camunda
adapter. - #145 Fix
string
pattern usage and remove dependency fromjquery.formatter
. - #140 Submit form with files.
- #142 Fix form-submit after Rails 5 upgrade.
- #134 Validate arbitrary keys for profiles.