<html>
<head>
<title>testJamRules</title>
<meta charset="utf-8" />
<script type="text/javascript" src="../extlib/jQuery/jquery-3.2.0.min.js"></script>
<script type="text/javascript" src="../extlib/iFSM/extlib/jquery.dorequesttimeout.js"></script>
<script type="text/javascript" src="../extlib/iFSM/extlib/jquery.attrchange.js"></script>
<script type="text/javascript" src="../extlib/iFSM/iFSM.js"></script>
<script type="text/javascript" src="../extlib/jQuery-MD5/jquery.md5.js"></script>
<script type="text/javascript" src="../jamrules.js"></script>
</head>
<body>
<div id="filterbox">
<h1>Raw test of jamrules</h1>
<div id="msg"></div>
</div>
<script>
//initialisation of jamrules and its configurator
var rulesForPriorityLayer = jamrules.build({debug:true});
/* initialisation of the configurator if needed*/
rulesForPriorityLayer.checkConfigurationPropertyValue("priority","priority1",1,false);
// rules setting
rulesForPriorityLayer.createRulesSet("PriorityMatch1",["activities","priority"]);
rulesForPriorityLayer.addRule("PriorityMatch1","testPriorityExist",'MatchProperty("priority")');
rulesForPriorityLayer.addRule("PriorityMatch1","testActivityNotCompliant",'!ConfigurationPropertySet("activities","compliant")');
rulesForPriorityLayer.addRule("PriorityMatch1","testDisplayAll",'ConfigurationPropertySet("activities","all")');
rulesForPriorityLayer.createRulesSet("PriorityMatch2",["activities","priority","technician"]);
rulesForPriorityLayer.addRule("PriorityMatch2","testPriorityExist",'MatchProperty("priority")');
rulesForPriorityLayer.addRule("PriorityMatch2","technicianCompliant",'MatchProperties("technician","compliantTechnician")');
rulesForPriorityLayer.addRule("PriorityMatch2","testActivityCompliant",'ConfigurationPropertySet("activities","compliant")');
rulesForPriorityLayer.addRule("PriorityMatch2","testDisplayAll",'ConfigurationPropertySet("activities","all")');
// prepare the rule engine
rulesForPriorityLayer.compileRules();
//add objects that we want to test if they match the rules
var el1={propertiesSet:{priority:{priority1:1 },compliantTechnician:{technician1:1}},matched:null,notmatched:null};
rulesForPriorityLayer.addObject(el1);
el1.matched=function(){
msg="el1 matched for "+msg;
//alert(msg);
$("#msg").append("<p>"+msg+"</p>");
};
el1.notmatched=function(){
msg="el1 did not matched for "+msg;
//alert(msg);
$("#msg").append("<p>"+msg+"</p>");
};
$("#msg").append("el1 configuration:"+JSON.stringify(el1));
//activate activities to display all in the configurator
var msg = "set activities->all->on"
rulesForPriorityLayer.checkConfigurationPropertyValue("activities","all",1);
//-> match
// activate priority / priority1
msg = "set priority->priority1->on"
rulesForPriorityLayer.checkConfigurationPropertyValue("priority","priority1",1);
//-> match
// activate technician / technician1
msg = "set technician->technician1->on"
rulesForPriorityLayer.checkConfigurationPropertyValue("technician","technician1",1);
//-> match
// activate display activities compliant
msg = "set activities->compliant->on"
rulesForPriorityLayer.checkConfigurationPropertyValue("activities","compliant",1);
//-> match
//deactivate priority/priority1
msg = "set priority->priority1->off"
rulesForPriorityLayer.checkConfigurationPropertyValue("priority","priority1",0);
//-> not match
// deactivate display activities compliant
msg = "set activities->compliant->off"
rulesForPriorityLayer.checkConfigurationPropertyValue("activities","compliant",0);
//-> match
</script>
</body>
</html>
|