Skip to content

Commit d87768b

Browse files
committed
Use jQuery3, add back babel configuration
1 parent 7f8c60e commit d87768b

File tree

5 files changed

+59
-53
lines changed

5 files changed

+59
-53
lines changed

package.json

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -54,6 +54,9 @@
5454
["@babel/preset-env", {"targets": {"node": "current"}}],
5555
"@babel/preset-typescript",
5656
"@babel/preset-flow"
57+
],
58+
"plugins": [
59+
"babel-plugin-transform-async-to-promises"
5760
]
5861
},
5962
"jest": {

src/main/resources/org/biouno/unochoice/CascadeChoiceParameter/index.jelly

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,12 +2,13 @@
22
<j:jelly xmlns:j="jelly:core" xmlns:st="jelly:stapler">
33
${it.parameters.clear()}
44
<st:include page="/org/biouno/unochoice/common/choiceParameterCommon.jelly"/>
5+
<st:bind value="${it}" var="cascadeChoiceParameter"/>
56
<script type="text/javascript">
67
// source, references table
78
var referencedParameters = Array();
89
<j:forEach var="value" items="${it.getReferencedParametersAsArray()}">
9-
// add the element we want to monitor
10-
referencedParameters.push("${value}");
10+
// add the element we want to monitor
11+
referencedParameters.push("${value}");
1112
</j:forEach>
1213

1314
if (window.makeStaplerProxy) {

src/main/resources/org/biouno/unochoice/DynamicReferenceParameter/index.jelly

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -55,12 +55,13 @@
5555
</j:choose>
5656
</div>
5757
</f:entry>
58+
<st:bind value="${it}" var="dynamicReferenceParameter"/>
5859
<script type="text/javascript">
5960
// source, references table
6061
var referencedParameters = Array();
6162
<j:forEach var="value" items="${it.getReferencedParametersAsArray()}">
62-
// add the element we want to monitor
63-
referencedParameters.push("${value}");
63+
// add the element we want to monitor
64+
referencedParameters.push("${value}");
6465
</j:forEach>
6566

6667
if (window.makeStaplerProxy) {

src/main/resources/org/biouno/unochoice/stapler/unochoice/UnoChoice.es6

Lines changed: 49 additions & 49 deletions
Original file line numberDiff line numberDiff line change
@@ -36,12 +36,12 @@ jQuery3.noConflict();
3636
*
3737
* <p>This module <strong>depends on JQuery</strong> only.</p>
3838
*
39-
* @param $ jQuery3 global var
39+
* @param jQuery3 jQuery3 global var
4040
* @author Bruno P. Kinoshita <brunodepaulak@yahoo.com.br>
4141
* @since 0.20
4242
*/
43-
var UnoChoice = UnoChoice || ($ => {
44-
let util = new Util($);
43+
var UnoChoice = UnoChoice || (jQuery3 => {
44+
let util = new Util(jQuery3);
4545
// The final public object
4646
let instance = {};
4747
let SEPARATOR = '__LESEP__';
@@ -153,13 +153,13 @@ var UnoChoice = UnoChoice || ($ => {
153153
let spinner, rootDiv;
154154
if (this.getRandomName()) {
155155
let spinnerId = this.getRandomName().split('_').pop();
156-
spinner = jQuery(`div#${spinnerId}-spinner`);
156+
spinner = jQuery3(`div#${spinnerId}-spinner`);
157157
// Show spinner
158158
if (spinner) {
159159
spinner.show();
160160
}
161161
// Disable DIV changes
162-
rootDiv = jQuery(`div#${spinnerId}`);
162+
rootDiv = jQuery3(`div#${spinnerId}`);
163163
if (rootDiv) {
164164
rootDiv.css('pointer-events', 'none');
165165
}
@@ -240,7 +240,7 @@ var UnoChoice = UnoChoice || ($ => {
240240
} else if (parameterElement.tagName === 'DIV' || parameterElement.tagName === 'SPAN') {
241241
if (parameterElement.children.length > 0 && (parameterElement.children[0].tagName === 'DIV' || parameterElement.children[0].tagName === 'SPAN')) {
242242
let tbody = parameterElement.children[0];
243-
$(tbody).empty();
243+
jQuery3(tbody).empty();
244244
let originalArray = [];
245245
// Check whether it is a radio or checkbox element
246246
if (parameterElement.className === 'dynamic_checkbox') {
@@ -315,7 +315,7 @@ var UnoChoice = UnoChoice || ($ => {
315315
// propagate change
316316
// console.log('Propagating change event from ' + this.getParameterName());
317317
// let e1 = $.Event('change', {parameterName: this.getParameterName()});
318-
// $(this.getParameterElement()).trigger(e1);
318+
// jQuery3(this.getParameterElement()).trigger(e1);
319319
if (!avoidRecursion) {
320320
if (cascadeParameters && cascadeParameters.length > 0) {
321321
for (let i = 0; i < cascadeParameters.length; i++) {
@@ -376,18 +376,18 @@ var UnoChoice = UnoChoice || ($ => {
376376
this.cascadeParameter = cascadeParameter;
377377
// Add event listener
378378
let _self = this;
379-
$(this.paramElement).change(e => {
379+
jQuery3(this.paramElement).change(e => {
380380
if (e.parameterName === _self.paramName) {
381381
console.log('Skipping self reference to avoid infinite loop!');
382382
e.stopImmediatePropagation();
383383
} else {
384384
console.log(`Cascading changes from parameter ${_self.paramName}...`);
385385
//_self.cascadeParameter.loading(true);
386-
$(".behavior-loading").show();
386+
jQuery3(".behavior-loading").show();
387387
// start updating in separate async function so browser will be able to repaint and show 'loading' animation , see JENKINS-34487
388388
setTimeout(async () => {
389389
await _self.cascadeParameter.update(false);
390-
$(".behavior-loading").hide();
390+
jQuery3(".behavior-loading").hide();
391391
}, 0);
392392
}
393393
});
@@ -446,12 +446,12 @@ var UnoChoice = UnoChoice || ($ => {
446446
let spinner, rootDiv;
447447
if (parameterElement.id) {
448448
let spinnerId = parameterElement.id.split('_').pop();
449-
spinner = jQuery(`div#${spinnerId}-spinner`);
449+
spinner = jQuery3(`div#${spinnerId}-spinner`);
450450
// Show spinner
451451
if (spinner) {
452452
spinner.show();
453453
}
454-
rootDiv = jQuery(`div#${spinnerId}`);
454+
rootDiv = jQuery3(`div#${spinnerId}`);
455455
// Disable DIV changes
456456
if (rootDiv) {
457457
rootDiv.css('pointer-events', 'none');
@@ -462,7 +462,7 @@ var UnoChoice = UnoChoice || ($ => {
462462
if (parameterElement.tagName === 'OL') { // handle OL's
463463
console.log('Calling Java server code to update HTML elements...');
464464
await this.proxy.getChoicesForUI(t => {
465-
$(parameterElement).empty(); // remove all children elements
465+
jQuery3(parameterElement).empty(); // remove all children elements
466466
const data = t.responseObject();
467467
console.log(`Values returned from server: ${data}`);
468468
let newValues = data[0];
@@ -474,7 +474,7 @@ var UnoChoice = UnoChoice || ($ => {
474474
}
475475
});
476476
} else if (parameterElement.tagName === 'UL') { // handle OL's
477-
$(parameterElement).empty(); // remove all children elements
477+
jQuery3(parameterElement).empty(); // remove all children elements
478478
console.log('Calling Java server code to update HTML elements...');
479479
await this.proxy.getChoicesForUI(t => {
480480
const data = t.responseObject();
@@ -499,7 +499,7 @@ var UnoChoice = UnoChoice || ($ => {
499499
// propagate change
500500
// console.log('Propagating change event from ' + this.getParameterName());
501501
// let e1 = $.Event('change', {parameterName: this.getParameterName()});
502-
// $(this.getParameterElement()).trigger(e1);
502+
// jQuery3(this.getParameterElement()).trigger(e1);
503503
if (!avoidRecursion) {
504504
if (cascadeParameters && cascadeParameters.length > 0) {
505505
for (let i = 0; i < cascadeParameters.length; i++) {
@@ -537,21 +537,21 @@ var UnoChoice = UnoChoice || ($ => {
537537
this.originalArray = [];
538538
// push existing values into originalArray array
539539
if (this.paramElement.tagName === 'SELECT') { // handle SELECTS
540-
let options = $(paramElement).children().toArray();
540+
let options = jQuery3(paramElement).children().toArray();
541541
for (let i = 0; i < options.length; ++i) {
542542
this.originalArray.push(options[i]);
543543
}
544544
} else if (paramElement.tagName === 'DIV' || paramElement.tagName === 'SPAN') { // handle CHECKBOXES
545-
if ($(paramElement).children().length > 0 && (paramElement.children[0].tagName === 'DIV' || paramElement.children[0].tagName === 'SPAN')) {
545+
if (jQuery3(paramElement).children().length > 0 && (paramElement.children[0].tagName === 'DIV' || paramElement.children[0].tagName === 'SPAN')) {
546546
let tbody = paramElement.children[0];
547-
let trs = $(tbody).find('div');
547+
let trs = jQuery3(tbody).find('div');
548548
for (let i = 0; i < trs.length ; ++i) {
549-
let tds = $(trs[i]).find('div');
550-
let inputs = $(tds[0]).find('input');
549+
let tds = jQuery3(trs[i]).find('div');
550+
let inputs = jQuery3(tds[0]).find('input');
551551
let input = inputs[0];
552552
this.originalArray.push(input);
553553
}
554-
} // if ($(paramElement).children().length > 0 && paramElement.children[0].tagName === 'DIV') {
554+
} // if (jQuery3(paramElement).children().length > 0 && paramElement.children[0].tagName === 'DIV') {
555555
}
556556
this.initEventHandler();
557557
}
@@ -610,7 +610,7 @@ var UnoChoice = UnoChoice || ($ => {
610610
*/
611611
FilterElement.prototype.initEventHandler = function() {
612612
let _self = this;
613-
$(_self.filterElement).keyup(e => {
613+
jQuery3(_self.filterElement).keyup(e => {
614614
//let filterElement = e.target;
615615
let filterElement = _self.getFilterElement();
616616
let filteredElement = _self.getParameterElement();
@@ -641,17 +641,17 @@ var UnoChoice = UnoChoice || ($ => {
641641
let tagName = filteredElement.tagName;
642642

643643
if (tagName === 'SELECT') { // handle SELECT's
644-
$(filteredElement).children().remove();
644+
jQuery3(filteredElement).children().remove();
645645
for (let i = 0; i < newOptions.length ; ++i) {
646646
let opt = document.createElement('option');
647647
opt.value = newOptions[i].value;
648648
opt.innerHTML = newOptions[i].innerHTML;
649-
$(filteredElement).append(opt);
649+
jQuery3(filteredElement).append(opt);
650650
}
651651
} else if (tagName === 'DIV' || tagName === 'SPAN') { // handle CHECKBOXES, RADIOBOXES and other elements (Jenkins renders them as tables)
652-
if ($(filteredElement).children().length > 0 && ($(filteredElement).children()[0].tagName === 'DIV' || $(filteredElement).children()[0].tagName === 'SPAN')) {
652+
if (jQuery3(filteredElement).children().length > 0 && (jQuery3(filteredElement).children()[0].tagName === 'DIV' || jQuery3(filteredElement).children()[0].tagName === 'SPAN')) {
653653
let tbody = filteredElement.children[0];
654-
$(tbody).empty();
654+
jQuery3(tbody).empty();
655655
if (filteredElement.className === 'dynamic_checkbox') {
656656
for (let i = 0; i < newOptions.length; i++) {
657657
let entry = newOptions[i];
@@ -702,12 +702,12 @@ var UnoChoice = UnoChoice || ($ => {
702702
tbody.appendChild(tr);
703703
}
704704
}
705-
} // if ($(filteredElement).children().length > 0 && $(filteredElement).children()[0].tagName === 'DIV') {
705+
} // if (jQuery3(filteredElement).children().length > 0 && jQuery3(filteredElement).children()[0].tagName === 'DIV') {
706706
} // if (tagName === 'SELECT') { // } else if (tagName === 'DIV') {
707707
// Propagate the changes made by the filter
708708
console.log('Propagating change event after filtering');
709709
let e1 = $.Event('change', {parameterName: 'Filter Element Event'});
710-
$(filteredElement).trigger(e1);
710+
jQuery3(filteredElement).trigger(e1);
711711
});
712712
}
713713
// HTML utility methods
@@ -731,11 +731,11 @@ var UnoChoice = UnoChoice || ($ => {
731731
* @see issue #21 in GitHub - github.com/biouno/uno-choice-plugin/issues
732732
*/
733733
function fakeSelectRadioButton(clazzName, id) {
734-
let element = $(`#${id}`).get(0);
734+
let element = jQuery3(`#${id}`).get(0);
735735
// deselect all radios with the class=clazzName
736-
let radios = $(`input[class="${clazzName}"]`);
736+
let radios = jQuery3(`input[class="${clazzName}"]`);
737737
radios.each(function(index) {
738-
$(this).attr('name', '');
738+
jQuery3(this).attr('name', '');
739739
});
740740
// select the radio with the id=id
741741
let parent = element.parentNode;
@@ -763,7 +763,7 @@ var UnoChoice = UnoChoice || ($ => {
763763
* @return {string} the value of the HTML element used as parameter value in Jenkins, as a string
764764
*/
765765
function getParameterValue(htmlParameter) {
766-
let e = $(htmlParameter);
766+
let e = jQuery3(htmlParameter);
767767
let value = '';
768768
if (e.attr('name') === 'value') {
769769
value = util.getElementValue(e);
@@ -772,7 +772,7 @@ var UnoChoice = UnoChoice || ($ => {
772772
if (subElements) {
773773
let valueBuffer = Array();
774774
subElements.each(function() {
775-
let tempValue = util.getElementValue($(this));
775+
let tempValue = util.getElementValue(jQuery3(this));
776776
if (tempValue)
777777
valueBuffer.push(tempValue);
778778
});
@@ -884,7 +884,7 @@ var UnoChoice = UnoChoice || ($ => {
884884
}
885885

886886
function renderChoiceParameter(paramName, filterLength) {
887-
let parentDiv = $(`#${paramName}`);
887+
let parentDiv = jQuery3(`#${paramName}`);
888888
let parameterHtmlElement = parentDiv.find('DIV');
889889
if (!parameterHtmlElement || parameterHtmlElement.length === 0) {
890890
console.log('Could not find element by name, perhaps it is a DIV?');
@@ -904,7 +904,7 @@ var UnoChoice = UnoChoice || ($ => {
904904

905905
async function renderCascadeChoiceParameter(parentDivRef, filterable, name, randomName, filterLength, paramName, referencedParameters, cascadeChoiceParameter) {
906906
// find the cascade parameter element
907-
let parentDiv = jQuery(parentDivRef);
907+
let parentDiv = jQuery3(parentDivRef);
908908
let parameterHtmlElement = parentDiv.find('DIV');
909909
if (!parameterHtmlElement || parameterHtmlElement.length === 0) {
910910
console.log('Could not find element by name, perhaps it is a DIV?');
@@ -926,10 +926,10 @@ var UnoChoice = UnoChoice || ($ => {
926926
for (let i = 0; i < referencedParameters.length ; ++i) {
927927
let parameterElement = null;
928928
// FIXME: review the block below
929-
let divs = jQuery('div[name="parameter"]');
929+
let divs = jQuery3('div[name="parameter"]');
930930
for (let j = 0; j < divs.length ; j++) {
931931
let div = divs[j];
932-
let hiddenNames = jQuery(div).find('input[name="name"]');
932+
let hiddenNames = jQuery3(div).find('input[name="name"]');
933933
if (hiddenNames[0].value === referencedParameters[i]) {
934934
let children = div.children;
935935
for (let k = 0; k < children.length; ++k) {
@@ -938,7 +938,7 @@ var UnoChoice = UnoChoice || ($ => {
938938
parameterElement = child;
939939
break;
940940
} else if (child.tagName === 'DIV' || child.tagName === 'SPAN') {
941-
let subValues = jQuery(child).find('input[name="value"]');
941+
let subValues = jQuery3(child).find('input[name="value"]');
942942
if (subValues && subValues.get(0)) {
943943
parameterElement = child;
944944
break;
@@ -970,36 +970,36 @@ var UnoChoice = UnoChoice || ($ => {
970970

971971
async function renderDynamicRenderParameter(parentDivRef, name, paramName, referencedParameters, dynamicReferenceParameter) {
972972
// find the cascade parameter element
973-
let parentDiv = jQuery(parentDivRef);
973+
let parentDiv = jQuery3(parentDivRef);
974974
// if the parameter class has been set to hidden, then we hide it now
975975
if (parentDiv.get(0).getAttribute('class') === 'hidden_uno_choice_parameter') {
976-
let parentTbody = jQuery(parentDiv.get(0)).parents('tbody');
976+
let parentTbody = jQuery3(parentDiv.get(0)).parents('tbody');
977977
// FIXME: temporary fix to support both TABLE and DIV in the Jenkins UI
978978
// remove after most users have migrated to newer versions with DIVs
979979
if (!parentTbody || parentTbody.length === 0) {
980-
parentTbody = jQuery(parentDiv.get(0)).parents('div > div.tr');
980+
parentTbody = jQuery3(parentDiv.get(0)).parents('div > div.tr');
981981
}
982982
if (parentTbody && parentTbody.length > 0) {
983-
jQuery(parentTbody.get(0)).attr('style', 'visibility:hidden;position:absolute;');
983+
jQuery3(parentTbody.get(0)).attr('style', 'visibility:hidden;position:absolute;');
984984
}
985985
}
986986
let parameterHtmlElement = null;
987987
for(let i = 0; i < parentDiv.children().length; i++) {
988988
let child = parentDiv.children()[i];
989989
if (child.getAttribute('name') === 'value' || child.id.indexOf('ecp_') > -1) {
990-
parameterHtmlElement = jQuery(child);
990+
parameterHtmlElement = jQuery3(child);
991991
break;
992992
}
993993
if (child.id.indexOf('inputElement_') > -1) {
994-
parameterHtmlElement = jQuery(child);
994+
parameterHtmlElement = jQuery3(child);
995995
break;
996996
}
997997
if (child.id.indexOf('formattedHtml_') > -1) {
998-
parameterHtmlElement = jQuery(child);
998+
parameterHtmlElement = jQuery3(child);
999999
break;
10001000
}
10011001
if (child.id.indexOf('imageGallery_') > -1) {
1002-
parameterHtmlElement = jQuery(child);
1002+
parameterHtmlElement = jQuery3(child);
10031003
break;
10041004
}
10051005
}
@@ -1009,10 +1009,10 @@ var UnoChoice = UnoChoice || ($ => {
10091009
for (let i = 0; i < referencedParameters.length ; ++i) {
10101010
let parameterElement = null;
10111011
// FIXME: review the block below
1012-
let divs = jQuery('div[name="parameter"]');
1012+
let divs = jQuery3('div[name="parameter"]');
10131013
for (let j = 0; j < divs.length ; j++) {
10141014
let div = divs[j];
1015-
let hiddenNames = jQuery(div).find('input[name="name"]');
1015+
let hiddenNames = jQuery3(div).find('input[name="name"]');
10161016
if (hiddenNames[0].value === referencedParameters[i]) {
10171017
let children = div.children;
10181018
for (let k = 0; k < children.length; ++k) {
@@ -1021,7 +1021,7 @@ var UnoChoice = UnoChoice || ($ => {
10211021
parameterElement = child;
10221022
break;
10231023
} else if (child.tagName === 'DIV' || child.tagName === 'SPAN') {
1024-
let subValues = jQuery(child).find('input[name="value"]');
1024+
let subValues = jQuery3(child).find('input[name="value"]');
10251025
if (subValues && subValues.get(0)) {
10261026
parameterElement = child;
10271027
break;

webpack.config.js

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@ module.exports = (env, argv) => ({
1818
module: {
1919
rules: [
2020
{use: "ts-loader", test: /\.ts$/},
21+
{use: "babel-loader", test: /\.es6$/},
2122
],
2223
},
2324
externals: {

0 commit comments

Comments
 (0)