Skip to content

Commit c36808d

Browse files
committed
bug 13765
Properly sync returned sticky fields from the API with the UI form, by dynamically generating createForm fields based on Lb sticky capabilities object; this will keep the required and conditional fields properly up to date with the API requirements.
1 parent ad8e13c commit c36808d

3 files changed

Lines changed: 41 additions & 15 deletions

File tree

client/WEB-INF/classes/resources/messages.properties

Lines changed: 12 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,18 @@
11
#new labels (begin) **********************************************************************************************
2+
label.sticky.tablesize=Table size
3+
label.sticky.expire=Expires
4+
label.sticky.cookie-name=Cookie name
5+
label.sticky.mode=Mode
6+
label.sticky.length=Length
7+
label.sticky.holdtime=Hold time
8+
label.sticky.request-learn=Request learn
9+
label.sticky.prefix=Prefix
10+
label.sticky.nocache=No cache
11+
label.sticky.indirect=Indirect
12+
label.sticky.postonly=Post only
13+
label.sticky.domain=Domain
214
state.Allocating=Allocating
315
state.Migrating=Migrating
4-
516
#new labels (end) ************************************************************************************************
617

718

ui/index.jsp

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1614,6 +1614,18 @@
16141614

16151615
<script language="javascript">
16161616
dictionary = {
1617+
'label.sticky.domain': '<fmt:message key="label.sticky.domain"/>',
1618+
'label.sticky.postonly': '<fmt:message key="label.sticky.postonly"/>',
1619+
'label.sticky.indirect': '<fmt:message key="label.sticky.indirect"/>',
1620+
'label.sticky.nocache': '<fmt:message key="label.sticky.nocache"/>',
1621+
'label.sticky.prefix': '<fmt:message key="label.sticky.prefix"/>',
1622+
'label.sticky.request-learn': '<fmt:message key="label.sticky.request-learn"/>',
1623+
'label.sticky.holdtime': '<fmt:message key="label.sticky.holdtime"/>',
1624+
'label.sticky.length': '<fmt:message key="label.sticky.length"/>',
1625+
'label.sticky.mode': '<fmt:message key="label.sticky.mode"/>',
1626+
'label.sticky.cookie-name': '<fmt:message key="label.sticky.cookie-name"/>',
1627+
'label.sticky.expire': '<fmt:message key="label.sticky.expire"/>',
1628+
'label.sticky.tablesize': '<fmt:message key="label.sticky.tablesize"/>',
16171629
'state.Migrating': '<fmt:message key="state.Migrating"/>',
16181630
'state.Allocating': '<fmt:message key="state.Allocating"/>',
16191631
'label.total.of.ip': '<fmt:message key="label.total.of.ip"/>',

ui/scripts/lbStickyPolicy.js

Lines changed: 17 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -19,21 +19,24 @@
1919
)[0].value);
2020

2121
var baseFields = {
22-
stickyName: { label: 'Sticky Name', validation: { required: true } },
23-
name: { label: 'Name', validation: { required: true }, isHidden: true },
24-
mode: { label: 'Mode', isHidden: true },
25-
length: { label: 'Length', validation: { required: true }, isHidden: true },
26-
holdtime: { label: 'Hold Time', validation: { required: true }, isHidden: true },
27-
tablesize: { label: 'Table size', isHidden: true },
28-
expire: { label: 'Expire', isHidden: true },
29-
requestlearn: { label: 'Request-Learn', isBoolean: true, isHidden: true },
30-
prefix: { label: 'Prefix', isBoolean: true, isHidden: true },
31-
nocache: { label: 'No cache', isBoolean: true, isHidden: true },
32-
indirect: { label: 'Indirect', isBoolean: true, isHidden: true },
33-
postonly: { label: 'Is post-only', isBoolean: true, isHidden: true },
34-
domain: { label: 'Domain', isBoolean: true, isHidden: true }
22+
stickyName: { label: 'Sticky Name', validation: { required: true } }
3523
};
3624

25+
$.map(
26+
$.map(
27+
stickinessCapabilities,
28+
function(c) { return c.paramlist; }
29+
),
30+
function(p) {
31+
baseFields[p.paramname] = {
32+
label: _l('label.sticky.' + p.paramname),
33+
isHidden: true,
34+
isBoolean: p.isflag,
35+
validation: { required: p.required }
36+
};
37+
}
38+
);
39+
3740
var conditionalFields = {
3841
methodname: {
3942
label: 'Stickiness method',
@@ -123,7 +126,7 @@
123126
},
124127
after: function(args) {
125128
// Remove fields not applicable to sticky method
126-
args.$form.find('.form-item:hidden').remove()
129+
args.$form.find('.form-item:hidden').remove();
127130

128131
var data = cloudStack.serializeForm(args.$form);
129132

0 commit comments

Comments
 (0)