Skip to content

Commit 184fc0a

Browse files
Add replace/append functionality in TestRules (#105)
* Implemented the functionality for replacing and appending loaded rules.
1 parent 87c527b commit 184fc0a

File tree

2 files changed

+88
-60
lines changed

2 files changed

+88
-60
lines changed

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

Lines changed: 71 additions & 56 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
// Global vars
22
var frontendServiceUrl;
33
var i = 0;
4+
var isReplacing = true;
45
var ruleTemplate = {
56
"TemplateName" : "",
67
"Type" : "",
@@ -189,91 +190,105 @@ jQuery(document).ready(
189190
sticky : false,
190191
theme : 'Notify'
191192
});
192-
193+
193194
var list = JSON.parse(fileContent);
194-
if (isRules == true) {
195-
vm.rulesBindingList([]);
195+
if (isRules) {
196+
if (isReplacing) {
197+
vm.rulesBindingList([]);
198+
}
196199
list.forEach(function(element) {
197200
vm.addRule(element);
198201
});
199202
} else {
200-
vm.eventsBindingList([]);
203+
if (isReplacing) {
204+
vm.eventsBindingList([]);
205+
}
201206
list.forEach(function(element) {
202207
vm.addEvent(element);
203208
});
204209
}
205210
};
206-
211+
207212
if (subscriptionFile != null){
208213
reader.readAsText(subscriptionFile);
209214
}
210215
}
211216

212-
//Set onchange event on the input element "uploadRulesFile" and "uploadEventsFile"
213-
var pomRules = document.getElementById('uploadRulesFile');
214-
pomRules.onchange = function uploadFinished() {
215-
var subscriptionFile = pomRules.files[0];
216-
validateJSONAndUpload(subscriptionFile, true);
217-
$(this).val("");
218-
};
219-
220-
var pomEvents = document.getElementById('uploadEventsFile');
221-
pomEvents.onchange = function uploadFinished() {
222-
var subscriptionFile = pomEvents.files[0];
223-
validateJSONAndUpload(subscriptionFile, false);
224-
$(this).val("");
225-
};
226-
217+
//Set onchange event on the input element "uploadRulesFile" and "uploadEventsFile"
218+
var pomRules = document.getElementById('uploadRulesFile');
219+
pomRules.onchange = function uploadFinished() {
220+
var subscriptionFile = pomRules.files[0];
221+
validateJSONAndUpload(subscriptionFile, true);
222+
$(this).val("");
223+
};
224+
225+
var pomEvents = document.getElementById('uploadEventsFile');
226+
pomEvents.onchange = function uploadFinished() {
227+
var subscriptionFile = pomEvents.files[0];
228+
validateJSONAndUpload(subscriptionFile, false);
229+
$(this).val("");
230+
};
231+
227232
//Upload events list json data
228233
$(".container").on("click", "button.upload_rules", function(event) {
229234
event.stopPropagation();
230235
event.preventDefault();
236+
var isRules = true;
237+
replaceAppendModal(isRules);
231238

232-
function createRulesUploadWindow() {
233-
if (document.createEvent) {
234-
var event = document.createEvent('MouseEvents');
235-
event.initEvent('click', true, true);
236-
pomRules.dispatchEvent(event);
237-
} else {
238-
pomRules.click();
239-
}
240-
}
241-
242-
function createUploadWindowMSExplorer() {
243-
$('#upload_rules').click();
244-
var file = $('#upload_rules').prop('files')[0];
245-
validateJSONAndUpload(file, true);
246-
}
247-
248-
// HTML5 Download File window handling
249-
createRulesUploadWindow();
250239
});
251240

252-
//Upload list of events json data
241+
//Upload list of events json data
253242
$(".container").on("click", "button.upload_events", function(event) {
254243
event.stopPropagation();
255244
event.preventDefault();
245+
var isRules = false;
246+
replaceAppendModal(isRules);
247+
});
256248

257-
function createUploadWindow() {
258-
if (document.createEvent) {
259-
var event = document.createEvent('MouseEvents');
260-
event.initEvent('click', true, true);
261-
pomEvents.dispatchEvent(event);
262-
} else {
263-
pomEvents.click();
264-
}
265-
}
249+
function replaceAppendModal(isRules){
250+
$('#AppendReplaceModal').modal('show');
266251

267-
function createUploadWindowMSExplorer() {
268-
$('#upload_events').click();
269-
var file = $('#upload_events').prop('files')[0];
270-
validateJSONAndUpload(file, false);
271-
}
252+
document.getElementById('replaceButton').onclick = function(){
253+
$('#AppendReplaceModal').modal('hide');
254+
isReplacing = true;
255+
if(isRules){
256+
createRulesUploadWindow();
257+
}else{
258+
createUploadWindow();
259+
}
260+
};
272261

262+
document.getElementById('appendButton').onclick = function(){
263+
$('#AppendReplaceModal').modal('hide');
264+
isReplacing = false;
265+
if(isRules){
266+
createRulesUploadWindow();
267+
}else{
268+
createUploadWindow();
269+
}
270+
};
271+
}
273272

274-
// HTML5 Download File window handling
275-
createUploadWindow();
276-
});
273+
function createRulesUploadWindow() {
274+
if (document.createEvent) {
275+
var event = document.createEvent('MouseEvents');
276+
event.initEvent('click', true, true);
277+
pomRules.dispatchEvent(event);
278+
} else {
279+
pomRules.click();
280+
}
281+
}
282+
283+
function createUploadWindow() {
284+
if (document.createEvent) {
285+
var event = document.createEvent('MouseEvents');
286+
event.initEvent('click', true, true);
287+
pomEvents.dispatchEvent(event);
288+
} else {
289+
pomEvents.click();
290+
}
291+
}
277292

278293
// Download the modified rule
279294
$('.container').on('click', 'button.download_rules', function() {

src/main/resources/templates/testRules.html

Lines changed: 17 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -20,8 +20,8 @@ <h1 id="test_rules_header">Test Rules</h1>
2020
<div class="p-1 col-lg-6 col-md-6 col-12 border border-right border-success" id="testRulesDOMObject">
2121
<div class="d-flex flex-wrap">
2222
<div class="col-11">
23-
<button class="btn btn-primary upload_rules rule-button mr-1 mt-1 d-inline-block">
24-
Upload Rules
23+
<button class="btn btn-primary upload_rules mr-1 mt-1 d-inline-block">
24+
Load Rules from file
2525
<i class="fa fa-fw fa-upload"></i>
2626
</button>
2727
<input class="hide" type='file' id='uploadRulesFile' name='file'/>
@@ -65,8 +65,8 @@ <h6>
6565
<div class="p-1 col-lg-6 col-md-6 col-12 border border-right border-success" id="testEventsDOMObject">
6666
<div class="d-flex flex-wrap">
6767
<div class="col-11">
68-
<button class="btn btn-primary upload_events rule-button mr-1 mt-1 d-inline-block">
69-
Upload Events
68+
<button class="btn btn-primary upload_events mr-1 mt-1 d-inline-block">
69+
Load Events from file
7070
<i class="fa fa-fw fa-upload"></i>
7171
</button>
7272
<input class="hide" type='file' id='uploadEventsFile' name='file'/>
@@ -128,6 +128,19 @@ <h6>
128128
</div>
129129
</div>
130130
</div>
131+
<div id="AppendReplaceModal" class="modal fade" role="dialog">
132+
<div class="modal-dialog" role="document">
133+
<div class="modal-content">
134+
<div class="modal-header justify-content-center">
135+
<h5 class="modal-title">Do you want to replace or append?</h5>
136+
</div>
137+
<div class="modal-footer justify-content-center">
138+
<button id="replaceButton" type="button" class="btn btn-primary">Replace</button>
139+
<button id="appendButton" type="button" class="btn btn-info">Append</button>
140+
</div>
141+
</div>
142+
</div>
143+
</div>
131144
<div id="aggregatedObjectModal" class="modal fade" role="dialog">
132145
<div class="modal-dialog modal-width-aggregated" role="document">
133146
<div class="modal-content">

0 commit comments

Comments
 (0)