Skip to content

Commit 3006af0

Browse files
committed
subscription handling updated
1 parent 153b2c4 commit 3006af0

File tree

2 files changed

+54
-177
lines changed

2 files changed

+54
-177
lines changed

src/main/resources/static/js/main.js

Lines changed: 45 additions & 53 deletions
Original file line numberDiff line numberDiff line change
@@ -194,19 +194,51 @@ jQuery(document).ready(function() {
194194
self.repeat_in = ko.observableArray([true, false]);
195195

196196

197+
self.add_requirement = function(data, event) {
197198

198-
// removeSelected_cc_decision_cni_in_list
199-
self.add_conditions_test = function(item) {
199+
var conditions_array = [];
200+
conditions_array.push(new jmespath_model({"jmespath": ko.observable("")}));
201+
self.subscription()[0].requirements().push(new conditions_model(conditions_array));
202+
203+
// Force update
204+
var data = self.subscription().slice(0);
205+
self.subscription([]);
206+
self.subscription(data);
207+
208+
self.subscription.valueHasMutated();
209+
210+
};
200211

201-
self.subscription()[0].requirements()[0].conditions().push(new jmespath_model({"jmespath": ko.observable("cc")}));
202212

203-
console.log(ko.toJSON(self.subscription()[0].requirements()[0].conditions()));
213+
214+
self.add_condition = function(data, event, requirement_index) {
215+
216+
self.subscription()[0].requirements()[ko.toJSON(requirement_index)].conditions().push(new jmespath_model({"jmespath": ko.observable("")}));
217+
218+
// Force update
219+
var data = self.subscription().slice(0);
220+
self.subscription([]);
221+
self.subscription(data);
204222

205223
self.subscription.valueHasMutated();
224+
};
225+
226+
227+
self.delete_condition = function (data, event, requirement_item , condition_index, requirement_index) {
228+
229+
self.subscription()[0].requirements()[ko.toJSON(requirement_index)].conditions.remove(data);
230+
if(self.subscription()[0].requirements()[ko.toJSON(requirement_index)].conditions().length <= 0)
231+
{
232+
self.subscription()[0].requirements.remove(self.subscription()[0].requirements()[ko.toJSON(requirement_index)]);
233+
}
206234

207235
};
208236

209-
};
237+
238+
239+
240+
};// var SubscriptionViewModel = function(){
241+
210242

211243
// Apply bindings
212244
var vm = new SubscriptionViewModel();
@@ -523,6 +555,7 @@ jQuery(document).ready(function() {
523555
// /END ## upload_subscriptions #################################################
524556

525557
// /Start ## Add Condition ##############################################
558+
/*
526559
$('div.modal-content').on( 'click', 'button.add_condition', function (event) {
527560
528561
event.stopPropagation();
@@ -535,38 +568,16 @@ jQuery(document).ready(function() {
535568
}
536569
]
537570
}
538-
*/
571+
*
539572
var condition = {
540573
"jmespath" : ko.observable("test")
541574
}
542575
543-
//var nisse = [];
544-
//nisse.push(new jmespath_model({"jmespath": ko.observable(jmespath_temp)}));
545-
546-
//new conditions_model(nisse);
547-
548-
//new conditions_model(new jmespath_model({"jmespath": ko.observable(jmespath_temp)})
549-
550-
// Not sure if its correct to use index 0(zero) here,, is it correct??
551-
//vm.subscription()[0].requirements.conditions.push(condition);
552-
553-
//vm.subscription()[0].requirements.push([new conditions_model([new jmespath_model({"jmespath": ko.observable("")})])]);
554-
555-
//vm.subscription()[0].requirements[0].conditions.push([new conditions_model([new jmespath_model({"jmespath": ko.observable("")})])]);
556-
557-
//vm.subscription()[0].requirements[0].push([new conditions_model([new jmespath_model({"jmespath": ko.observable("")})])]);
558-
559-
560-
// vm.subscription()[0].requirements.push([new conditions_model([new jmespath_model({"jmespath": ko.observable("")})])]);
561-
562-
//vm.subscription()[0].requirements[0].conditions.push([new jmespath_model({"jmespath": ko.observable("")})]);
563-
564-
565576
566577
567578
vm.subscription()[0].requirements()[0].conditions().push(new jmespath_model({"jmespath": ko.observable("cc")}));
568579
569-
//vm.subscription()[0].requirements()[0].conditions().push({"jmespath": ko.observable("cc")});
580+
vm.subscription()[0].requirements()[0].conditions().push({"jmespath": ko.observable("cc")});
570581
571582
572583
@@ -581,12 +592,13 @@ jQuery(document).ready(function() {
581592
// ko.cleanNode(document.getElementById(element_id))
582593
// ko.applyBindings(viewModel, document.getElementById(element_id))
583594
584-
});
595+
});*/
585596
// /Stop ## Add Condition ################################################
586597

587598

588599
// /Start ## Delete Condition ##############################################
589-
$('div.modal-content').on( 'click', 'button.condition_delete', function (event) {
600+
/* $('div.modal-content').on( 'click', 'button.condition_delete', function (event) {
601+
590602
591603
event.stopPropagation();
592604
event.preventDefault();
@@ -601,7 +613,7 @@ jQuery(document).ready(function() {
601613
else {
602614
$.alert("You need to have atleast one Condition.");
603615
}
604-
});
616+
});*/
605617
// /Stop ## Delete Condition ################################################
606618

607619

@@ -673,18 +685,8 @@ jQuery(document).ready(function() {
673685

674686
// Map JSON to Model and observableArray
675687
var mappedPackageInfo = $.map(returnData, function (item) {
676-
677-
// Defining Observable on all parameters in Requirements array(which is defined as ObservableArray)
678-
/*
679-
for (i=0; i < item[0].requirements.length; i++){
680-
var jmespath_temp = item[0].requirements[i].conditions[0].jmespath;
681-
item[0].requirements[i].conditions[0] = {"jmespath" : ko.observable(jmespath_temp)};
682-
683-
var type_temp = item[0].requirements[i].type;
684-
item[0].requirements[i].type = ko.observable(type_temp);
685-
}*/
686-
687688

689+
// Defining Observable on all parameters in Requirements array(which is defined as ObservableArray)
688690

689691
for (i=0; i < item[0].requirements.length; i++) {
690692

@@ -696,16 +698,6 @@ jQuery(document).ready(function() {
696698

697699
conditions_array.push(new jmespath_model({"jmespath": ko.observable(jmespath_temp)}));
698700

699-
//item[0].requirements[i].conditions[k] = {"jmespath": ko.observable(jmespath_temp)};
700-
701-
//item[0].requirements[i].conditions.push([{"jmespath": ko.observable(jmespath_temp)}])
702-
703-
//item[0].requirements[i].conditions.push(item[0].requirements[i].conditions[k] = {"jmespath": ko.observable(jmespath_temp)});
704-
705-
//item[0].requirements[i] = {"conditions": ko.observableArray([item[0].requirements[i].conditions[k] = {"jmespath": ko.observable(jmespath_temp)}])};
706-
707-
//item[0].requirements[i] = {"conditions": ko.observableArray([item[0].requirements[i].conditions[k] = {"jmespath": ko.observable(jmespath_temp)}])};
708-
709701
}
710702

711703
item[0].requirements[i] = new conditions_model(conditions_array);

src/main/resources/templates/index.html

Lines changed: 9 additions & 124 deletions
Original file line numberDiff line numberDiff line change
@@ -77,7 +77,7 @@ <h3 class="modal-title text-center">Subscription Form</h3>
7777
<input type="hidden" value="" name="id" />
7878
<div class="form-body">
7979

80-
<!-- ko foreach: $root.subscription() -->
80+
<!-- ko foreach: subscription -->
8181
<div class="form-group">
8282
<label class="control-label col-md-3">SubscriptionName</label>
8383
<div class="col-md-9">
@@ -134,49 +134,37 @@ <h3 class="modal-title text-center">Subscription Form</h3>
134134
</div>
135135
</div>
136136

137-
<!-- ko foreach: $data.requirements() -->
137+
<!-- ko foreach: { data: requirements, as: 'requirements_item' } -->
138138
<div class="form-group">
139139
<label class="control-label col-md-3">Requirements</label>
140140
<div class="col-md-9">
141141

142-
<!-- ko foreach: $data.conditions() -->
142+
<!-- ko foreach: requirements_item.conditions -->
143143
<div class="form-group">
144144
<label class="control-label col-md-3">Conditions</label>
145145
<div class="col-md-9">
146-
<textarea data-toggle="tooltip" title="Write a Subscription Rule(JmePath)" data-bind="textInput:$data.jmespath()" name="jmespath" placeholder="jmespath" class="form-control" type="text" />
147-
<span class="help-block"></span>
148-
</div>
149-
</div>
150-
151-
<div class="form-group">
152-
<label class="control-label col-md-3"></label>
153-
<div class="col-md-9">
154-
<button data-toggle="tooltip" title="Delete condition" class="btn btn-danger condition_delete" ><i class="glyphicon glyphicon-trash"></i>Delete</button>
146+
<p data-bind="text: $parentContext.$index() + ':' + $index()"></p>
147+
<textarea data-toggle="tooltip" title="Write a Subscription Rule(JmePath)" data-bind="textInput:$data.jmespath()" name="jmespath" placeholder="jmespath" class="form-control" type="text" />
148+
<button data-bind="click: function(data, event) { $root.delete_condition(data, event, requirements_item , $index(), $parentContext.$index() ); }, clickBubble: false" data-toggle="tooltip" title="Delete condition" class="btn btn-danger float-right" ><i class="glyphicon glyphicon-trash"></i>Delete</button>
155149
<span class="help-block"></span>
156150
</div>
157151
</div>
158152

159153

160-
<div class="form-group">
161-
<label class="control-label col-md-3"></label>
162-
<div class="col-md-9">
163-
<button data-bind="click: $root.add_conditions_test, clickBubble: false" data-toggle="tooltip" title="Add a new condition" class="btn btn-success"><i class="glyphicon glyphicon-plus"></i> Add Condition XX</button>
164-
<span class="help-block"></span>
165-
</div>
166-
</div>
167154
<!-- /ko -->
168155

169156
</div>
170157

158+
<button data-bind="click: function(data, event) { $root.add_condition(data, event, $index()); }, clickBubble: false" data-toggle="tooltip" title="Add a new condition" class="btn btn-success float-right"><i class="glyphicon glyphicon-plus"></i> Add Condition</button>
171159

172160

173161

174162

175163
</div>
176164
<!-- /ko -->
177165
<div class="container">
178-
<button data-toggle="tooltip" title="Add a new condition" class="btn btn-success add_condition"><i class="glyphicon glyphicon-plus"></i> Add Condition</button>
179-
</div>
166+
<button data-bind="click: $root.add_requirement, clickBubble: false" data-toggle="tooltip" title="Add a new requirement" class="btn btn-success float-right"><i class="glyphicon glyphicon-plus"></i> Add Requirement</button>
167+
</div>
180168

181169

182170
<!-- /ko -->
@@ -207,109 +195,6 @@ <h3 class="modal-title text-center">Subscription Form</h3>
207195
</div>
208196

209197

210-
<!-- ko foreach: $root.subscription() -->
211-
<div class="form-group">
212-
<label class="control-label col-md-3">SubscriptionName</label>
213-
<div class="col-md-9">
214-
<input data-toggle="tooltip" title="Specify a SubsciptionName" data-bind="textInput:$data.subscriptionName" name="subscriptionName" placeholder="subscriptionName" class="form-control" type="text" />
215-
<span class="help-block"></span>
216-
</div>
217-
</div>
218-
<div class="form-group" data-bind="visible: created()">
219-
<label class="control-label col-md-3">Created</label>
220-
<div class="col-md-9">
221-
<span data-toggle="tooltip" title="Specify the creation date" data-bind="text:$data.created" name="created" placeholder="created" class="form-control" type="text" />
222-
<span class="help-block"></span>
223-
</div>
224-
</div>
225-
<div class="form-group">
226-
<label class="control-label col-md-3">Type</label>
227-
<div class="col-md-9">
228-
<span data-toggle="tooltip" title="Specify the creation date" data-bind="text:$data.aggregationtype" name="aggregationtype" placeholder="aggregation_type" class="form-control" type="text" />
229-
<span class="help-block"></span>
230-
</div>
231-
</div>
232-
<div class="form-group">
233-
<label class="control-label col-md-3">NotificationType</label>
234-
<div class="col-md-9">
235-
<select data-toggle="tooltip" title="Choose a notification type" data-bind="options: $root.notificationType_in,
236-
optionsText: 'text',
237-
optionsValue: 'value',
238-
value: $data.notificationType,
239-
optionsCaption: 'Choose...'"></select>
240-
</div>
241-
</div>
242-
<div class="form-group">
243-
<label class="control-label col-md-3">NotificationMeta</label>
244-
<div class="col-md-9">
245-
<input data-toggle="tooltip" title="Specify notification meta data" data-bind="textInput:$data.notificationMeta" name="notificationMeta" placeholder="notificationMeta" class="form-control" type="text" />
246-
<span class="help-block"></span>
247-
</div>
248-
</div>
249-
<div class="form-group">
250-
<label class="control-label col-md-3">Repeat</label>
251-
<div class="col-md-9">
252-
<select data-toggle="tooltip" title="Choose if to repeat or not to repeat" data-bind="options: $root.repeat_in,
253-
optionsText: $data.repeat(),
254-
value: $data.repeat,
255-
optionsCaption: 'Choose...'"></select>
256-
<span class="help-block"></span>
257-
</div>
258-
</div>
259-
<div class="form-group">
260-
<label class="control-label col-md-3">NotificationMessage</label>
261-
<div class="col-md-9">
262-
<input data-toggle="tooltip" title="Choose a notification message" data-bind="textInput:$data.notificationMessage" name="notificationMessage" placeholder="notificationMessage" class="form-control" type="text" />
263-
<span class="help-block"></span>
264-
</div>
265-
</div>
266-
267-
<!-- ko foreach: $data.requirements() -->
268-
<div class="form-group">
269-
<label class="control-label col-md-3">Requirements</label>
270-
<div class="col-md-9">
271-
272-
<!-- ko foreach: $data.conditions() -->
273-
<div class="form-group">
274-
<label class="control-label col-md-3">Conditions</label>
275-
<div class="col-md-9">
276-
<textarea data-toggle="tooltip" title="Write a Subscription Rule(JmePath)" data-bind="textInput:$data.jmespath()" name="jmespath" placeholder="jmespath" class="form-control" type="text" />
277-
<span class="help-block"></span>
278-
</div>
279-
</div>
280-
281-
<div class="form-group">
282-
<label class="control-label col-md-3"></label>
283-
<div class="col-md-9">
284-
<button data-toggle="tooltip" title="Delete condition" class="btn btn-danger condition_delete" ><i class="glyphicon glyphicon-trash"></i>Delete</button>
285-
<span class="help-block"></span>
286-
</div>
287-
</div>
288-
289-
290-
<div class="form-group">
291-
<label class="control-label col-md-3"></label>
292-
<div class="col-md-9">
293-
<button data-bind="click: $root.add_conditions_test, clickBubble: false" data-toggle="tooltip" title="Add a new condition" class="btn btn-success"><i class="glyphicon glyphicon-plus"></i> Add Condition XX</button>
294-
<span class="help-block"></span>
295-
</div>
296-
</div>
297-
<!-- /ko -->
298-
299-
</div>
300-
301-
302-
303-
304-
305-
</div>
306-
<!-- /ko -->
307-
<div class="container">
308-
<button data-toggle="tooltip" title="Add a new condition" class="btn btn-success add_condition"><i class="glyphicon glyphicon-plus"></i> Add Condition</button>
309-
</div>
310-
311-
312-
<!-- /ko -->
313198

314199

315200
</body>

0 commit comments

Comments
 (0)