2323<div id="md_expressionTest" data-modalType="md_expressionTest">
2424 <form class="form-horizontal" onsubmit="return false;">
2525 <div class="input-group input-group-sm" style="width: 100%">
26- <span class="input-group-addon roundedLeft" style="width: 100px"><i class="fas fa-random"></i> {{Test}}</span>
26+ <span class="input-group-addon roundedLeft" style="width: 100px"><i class="fas fa-random"></i> {{Test}}</span>
2727 <input class="form-control input-sm" id="in_testExpression">
2828 <span class="input-group-btn">
2929 <a class="btn btn-default btn-sm cursor tooltips" id="bt_searchInfoCmd" title="{{Rechercher une commande}}"><i class="fas fa-list-alt"></i>
30- <a class="btn btn-default btn-sm cursor tooltips" id="bt_selectGenericExpression" title="{{Rechercher un type générique}}"><i class="fas fa-puzzle-piece"></i>
31- </a><a class="btn btn-default btn-sm cursor tooltips" id="bt_searchScenario" title="{{Rechercher un scénario}}"><i class="fas fa-history"></i>
32- </a><a class="btn btn-default btn-sm cursor tooltips" id="bt_searchEqLogic" title="{{Rechercher un équipement}}"><i class="fas fa-cube"></i>
33- </a><a class="btn btn-sm btn-default btn-success roundedRight" id="bt_testExpression"><i class="fas fa-bolt"></i> {{Exécuter}}</a>
30+ <a class="btn btn-default btn-sm cursor tooltips" id="bt_selectGenericExpression" title="{{Rechercher un type générique}}"><i class="fas fa-puzzle-piece"></i>
31+ </a><a class="btn btn-default btn-sm cursor tooltips" id="bt_searchScenario" title="{{Rechercher un scénario}}"><i class="fas fa-history"></i>
32+ </a><a class="btn btn-default btn-sm cursor tooltips" id="bt_searchEqLogic" title="{{Rechercher un équipement}}"><i class="fas fa-cube"></i>
33+ </a><a class="btn btn-sm btn-default btn-success roundedRight" id="bt_testExpression"><i class="fas fa-bolt"></i> {{Exécuter}}</a>
3434 </span>
3535 </div>
3636 </form>
4242</div>
4343
4444<script>
45- if (!jeeFrontEnd.md_expressionTest) {
46- jeeFrontEnd.md_expressionTest = {
47- init: function() {
48- //Show all IF expression if from scenario page:
49- if (document.body.getAttribute('data-page') == 'scenario' && document.getElementById('div_editScenario').isVisible()) {
50- document.querySelectorAll('.subElementIF .expressions input[data-l1key="expression"]').forEach(_expr => {
51- expression = _expr.value.trim().replace(/"/g, '\'')
52- newLi = '<li class="cursor list-group-item list-group-item-success bt_expressionHistory" data-command="'+ expression +'"><a>' + expression + '</a></li>'
53- document.getElementById('ul_expressionHistory').insertAdjacentHTML('beforeend', newLi)
54- })
55- }
56- },
57- testExpression: function() {
58- let expression = document.getElementById('in_testExpression').value
59- if (expression == '') {
60- jeedomUtils.showAlert({
61- attachTo: jeeDialog.get('#md_expressionTest', 'dialog'),
62- message: '{{L\'expression de test ne peut être vide}}',
63- level: 'danger'
64- })
65- return
66- }
67-
68- if (!document.querySelector('.bt_expressionHistory[data-command="' + expression.replace(/"/g, '\\"') + '"]')) {
69- let li = '<li class="cursor list-group-item list-group-item-success bt_expressionHistory" data-command="' + expression.replace(/"/g, '\\"') + '"><a>' + expression + '</a></li>'
70- document.getElementById('ul_expressionHistory').insertAdjacentHTML('afterbegin', li)
71- }
72- jeedom.scenario.testExpression({
73- expression: expression,
74- error: function(error) {
45+ if (!jeeFrontEnd.md_expressionTest) {
46+ jeeFrontEnd.md_expressionTest = {
47+ init: function() {
48+ //Show all IF expression if from scenario page:
49+ if (document.body.getAttribute('data-page') == 'scenario' && document.getElementById('div_editScenario').isVisible()) {
50+ document.querySelectorAll('.subElementIF .expressions input[data-l1key="expression"]').forEach(_expr => {
51+ expression = _expr.value.trim().replace(/"/g, '\'')
52+ newLi = '<li class="cursor list-group-item list-group-item-success bt_expressionHistory" data-command="' + expression + '"><a>' + expression + '</a></li>'
53+ document.getElementById('ul_expressionHistory').insertAdjacentHTML('beforeend', newLi)
54+ })
55+ }
56+ },
57+ testExpression: function() {
58+ let expression = document.getElementById('in_testExpression').value.trim()
59+ if (expression == '') {
7560 jeedomUtils.showAlert({
7661 attachTo: jeeDialog.get('#md_expressionTest', 'dialog'),
77- message: error.message ,
62+ message: '{{L\'expression de test ne peut être vide}}' ,
7863 level: 'danger'
79- });
80- },
81- success: function(data) {
82- let divResult = document.getElementById('div_expressionTestResult')
83- divResult.empty()
84- var html = '<ul><div class="alert alert-info">'
85- if (data.correct == 'nok') {
86- html += '<strong>{{Attention : il doit y avoir un souci, car le résultat est le même que l\'expression}}</strong><br\>'
87- }
88- html += '{{Je vais évaluer :}} <strong>' + data.evaluate + '</strong><br/>'
89- html += '{{Résultat :}} <strong>' + data.result + '</strong>'
90- html += '</div></ul>'
91- divResult.insertAdjacentHTML('beforeend', html)
64+ })
65+ return
66+ }
67+
68+ if (!document.querySelector('.bt_expressionHistory[data-command="' + expression.replace(/"/g, '\\"') + '"]')) {
69+ let li = '<li class="cursor list-group-item list-group-item-success bt_expressionHistory" data-command="' + expression.replace(/"/g, '\\"') + '"><a>' + expression + '</a></li>'
70+ document.getElementById('ul_expressionHistory').insertAdjacentHTML('afterbegin', li)
9271 }
93- })
94- },
72+ jeedom.scenario.testExpression({
73+ expression: expression,
74+ error: function(error) {
75+ jeedomUtils.showAlert({
76+ attachTo: jeeDialog.get('#md_expressionTest', 'dialog'),
77+ message: error.message,
78+ level: 'danger'
79+ });
80+ },
81+ success: function(data) {
82+ let divResult = document.getElementById('div_expressionTestResult')
83+ divResult.empty()
84+ var html = '<ul><div class="alert alert-info">'
85+ if (data.correct == 'nok') {
86+ html += '<strong>{{Attention : il doit y avoir un souci, car le résultat est le même que l\'expression}}</strong><br\>'
87+ }
88+ html += '{{Je vais évaluer :}} <strong>' + data.evaluate + '</strong><br/>'
89+ html += '{{Résultat :}} <strong>' + data.result + '</strong>'
90+ html += '</div></ul>'
91+ divResult.insertAdjacentHTML('beforeend', html)
92+ }
93+ })
94+ },
95+ }
9596 }
96- }
9797
98- (function() {// Self Isolation!
99- var jeeM = jeeFrontEnd.md_expressionTest
100- jeeM.init()
98+ (function() { // Self Isolation!
99+ var jeeM = jeeFrontEnd.md_expressionTest
100+ jeeM.init()
101101
102- //Manage events outside parents delegations:
103- document.getElementById('in_testExpression')?.addEventListener('keypress', function(event) {
104- if (event.which == 13) {
105- jeeFrontEnd.md_expressionTest.testExpression()
106- }
107- })
102+ //Manage events outside parents delegations:
103+ document.getElementById('in_testExpression')?.addEventListener('keypress', function(event) {
104+ if (event.which == 13) {
105+ jeeFrontEnd.md_expressionTest.testExpression()
106+ }
107+ })
108108
109- /*Events delegations
110- */
111- document.getElementById('md_expressionTest')?.addEventListener('click', function(event) {
112- var _target = null
113- if (_target = event.target.closest('#bt_searchInfoCmd')) {
114- jeedom.cmd.getSelectModal({cmd: {type: 'info'}}, function(result) {
115- document.getElementById('in_testExpression').insertAtCursor(result.human)
116- })
117- return
118- }
109+ /*Events delegations
110+ */
111+ document.getElementById('md_expressionTest')?.addEventListener('click', function(event) {
112+ var _target = null
113+ if (_target = event.target.closest('#bt_searchInfoCmd')) {
114+ jeedom.cmd.getSelectModal({
115+ cmd: {
116+ type: 'info'
117+ }
118+ }, function(result) {
119+ document.getElementById('in_testExpression').insertAtCursor(result.human)
120+ })
121+ return
122+ }
119123
120- if (_target = event.target.closest('#bt_searchScenario')) {
121- jeedom.scenario.getSelectModal({}, function(result) {
122- document.getElementById('in_testExpression').insertAtCursor(result.human)
123- })
124- return
125- }
124+ if (_target = event.target.closest('#bt_searchScenario')) {
125+ jeedom.scenario.getSelectModal({}, function(result) {
126+ document.getElementById('in_testExpression').insertAtCursor(result.human)
127+ })
128+ return
129+ }
126130
127- if (_target = event.target.closest('#bt_searchEqLogic')) {
128- jeedom.eqLogic.getSelectModal({}, function(result) {
129- document.getElementById('in_testExpression').insertAtCursor(result.human)
130- })
131- return
132- }
131+ if (_target = event.target.closest('#bt_searchEqLogic')) {
132+ jeedom.eqLogic.getSelectModal({}, function(result) {
133+ document.getElementById('in_testExpression').insertAtCursor(result.human)
134+ })
135+ return
136+ }
133137
134- if (_target = event.target.closest('#bt_selectGenericExpression')) {
135- jeedom.config.getGenericTypeModal({type: 'info', object: true}, function(result) {
136- document.getElementById('in_testExpression').insertAtCursor(result.human)
137- })
138- return
139- }
138+ if (_target = event.target.closest('#bt_selectGenericExpression')) {
139+ jeedom.config.getGenericTypeModal({
140+ type: 'info',
141+ object: true
142+ }, function(result) {
143+ document.getElementById('in_testExpression').insertAtCursor(result.human)
144+ })
145+ return
146+ }
140147
141- if (_target = event.target.closest('#bt_testExpression')) {
142- jeeFrontEnd.md_expressionTest.testExpression()
143- return
144- }
148+ if (_target = event.target.closest('#bt_testExpression')) {
149+ jeeFrontEnd.md_expressionTest.testExpression()
150+ return
151+ }
145152
146- if (_target = event.target.closest('.bt_expressionHistory')) {
147- document.getElementById('in_testExpression').value = _target.getAttribute('data-command')
148- jeeFrontEnd.md_expressionTest.testExpression()
149- return
150- }
151- })
152- })()
153- </script>
153+ if (_target = event.target.closest('.bt_expressionHistory')) {
154+ document.getElementById('in_testExpression').value = _target.getAttribute('data-command')
155+ jeeFrontEnd.md_expressionTest.testExpression()
156+ return
157+ }
158+ })
159+ })()
160+ </script>
0 commit comments