[xml-job-to-job-dsl] Extract inline script block and event handlers in com/adq/jenkins/xmljobtodsl/jenkins/JobSelectorView/index.jelly

XMLWordPrintable

      Problems

      == Inline Script Block
      Line: 69
      ----
      <script>
      
      		var data = <st:bind value="${it.data}"/>
      
      		function selectJob(checked, index) {
      			if (checked) {
      				data.add(index, function(t) {
      					updateNumberOfSelected();
      				});
      			} else {
      				data.remove(index, function(t) {
      					updateNumberOfSelected();
      				});
      			}
      		}
      
      		function updateNumberOfSelected() {
      			data.getNumberOfSelectedJobs(function(t) {
      				document.getElementById("selectedNumber").innerHTML = t.responseObject();
      			});
      		}
      
      		function enableViewName(checked) {
      			var viewNameDiv = document.getElementById("viewName")
      			if (checked) {
      				viewNameDiv.style.display = '';
      			} else {
      				viewNameDiv.style.display = 'none';
      			}
      		}
      
      		function startConverting() {
      			<?jelly escape-by-default='true'?>
      			document.getElementById("status").innerHTML = "${%Parsing XML to DSL... Please wait...}";
      			var viewName = null;
      			var viewNameValue =	document.getElementById("viewNameText").value;
      			if (viewNameValue !== "") {
      				viewName = viewNameValue;
      			}
      
      			data.startOperation(viewName, function(t) {
      				if (t.responseObject()) {
      					handleSuccess();
      				} else {
      					handleError();
      				}
      			});
      		}
      
      		function handleSuccess() {
      			document.getElementById("content").innerHTML = '<div id="filePath"></div><br /><br /><div id="dsl"></div><br /><br /><div id="nonTranslated"></div>';
      			data.getDslFilePath(function(t) {
      				document.getElementById("filePath").innerHTML = '<a href="' + t.responseObject() + '">Download DSL file</a>';
      			});
      			data.getParsedItems(function(t) {
      				document.getElementById("dsl").innerHTML = '<pre>' + t.responseObject() + '</pre>';
      			});
      			data.getNonTranslatedTags(function(t) {
      				document.getElementById("nonTranslated").innerHTML = t.responseObject();
      			});
      		}
      
      		function handleError() {
      			data.getError(function(t) {
      				document.getElementById("status").innerHTML = '<font color="red">' + t.responseObject() + '</font>';
      			});
      		}
      	</script>
      ----
      
      == Inline Event Handler
      Line: 35
      ----
      <input type="checkbox" onclick="selectJob(this.checked, ${count})"/>
      ----
      
      == Inline Event Handler
      Line: 50
      ----
      <input type="checkbox" onclick="enableViewName(this.checked)"/>
      ----
      
      == Inline Event Handler
      Line: 59
      ----
      <input type="submit" name="exco" id="exco" value="${%Convert selected to DSL}" onclick="startConverting()"/>
      ----
      

      Solutions

      https://www.jenkins.io/doc/developer/security/csp/#inline-javascript-blocks
      https://www.jenkins.io/doc/developer/security/csp/#inline-event-handlers

            Assignee:
            Unassigned
            Reporter:
            Basil Crow
            Votes:
            0 Vote for this issue
            Watchers:
            1 Start watching this issue

              Created:
              Updated: