Custom states can be applied on form fields and it's displaying a custom css for each state.
If the EventOnCustomStateChange the EventOnCustomStateChange is set in designer, than every time the custom state is changed, the event is triggered and you can see the action (set or clear) and the customState that had been added/removed.
...
attribute | values |
---|
name | the name of the custom state (eg. 'alert') |
option | a key-value object (eg. {bubbleUp: true}) |
Code Block |
---|
language | js |
---|
title | Examples from javascript |
---|
|
// get a field, like the selfdesc field from offerheaderdata form.
var field1 = akioma.root.dynObject.getObject('offerheaderdata').getField('selfdesc');
// add an "alert" custom state to that field
field1.controller.setCustomState('Alert');
// add a "bg" custom state
field1.controller.setCustomState('bg');
// remove the custom state from that field
field1.controller.clearCustomState('Alert'); |
...
Code Block |
---|
title | Css for customStates |
---|
|
div[akcustomstate*="Alertalert"] {
display: inline-flex;
.custom-icon {
display: inline-block;
margin-left: 10px;
padding-left: 20px;
position: relative;
i {
position: absolute;
top: 50%;
left: 50%;
transform: translate(-50%, -50%);
&::before {
content: "\f071";
font-family: 'Font Awesome 5 Pro';
font-weight: 900;
font-style: normal;
}
}
}
}
div[akcustomstate*="bg"] {
background-color: gray !important;
}
//customState for window and panel header
div[akstyle="window"][akcustomstate*="bg"] div.dhxwin_hdr,
.dhx_cell_layout[akcustomstate*="bg"] div.dhx_cell_hdr {
background-color: gray !important;
} |
Info |
---|
Make sure you are using icons from the Font Awesome library version available in the framework. Using icons from another version of Font Awesome might not work. |
For CLAPI example, set for a Form, the EventAfterDisplay attribute to call a method "$ akioma.OrderDetailOverviewFormAfterDisplay(self)";in DetailBasisdatenFormAfterDisplay.ts, function DetailBasisdatenFormAfterDisplay, set the following lines.
Code Block |
---|
|
akioma.OrderDetailOverviewFormAfterDisplay = function (Form) {
//Set a customState on a field
const field =Form.getField("todes_dat").setCustomState('bg', {bubbleUp: true});
Form.getField('FIELD_NAME');
field.controller."taetigkeit").setCustomState('Alertbg');,
return;
}{bubbleUp: true}); |