diff --git a/src/main/resources/io/jenkins/plugins/folderauth/FolderAuthorizationStrategyManagementLink/index.jelly b/src/main/resources/io/jenkins/plugins/folderauth/FolderAuthorizationStrategyManagementLink/index.jelly
index 3236bf6..a5ab491 100644
--- a/src/main/resources/io/jenkins/plugins/folderauth/FolderAuthorizationStrategyManagementLink/index.jelly
+++ b/src/main/resources/io/jenkins/plugins/folderauth/FolderAuthorizationStrategyManagementLink/index.jelly
@@ -35,10 +35,10 @@
-
@@ -53,8 +53,8 @@
-
@@ -82,7 +82,7 @@
-
+
${%addRole}
@@ -123,10 +123,10 @@
-
+
${%assign}
-
+
${%remove}
@@ -141,8 +141,8 @@
-
@@ -163,10 +163,6 @@
-
+
${%assign}
-
+
${%remove}
@@ -249,8 +245,8 @@
-
@@ -291,7 +287,7 @@
- ${%addRole}
+ ${%addRole}
diff --git a/src/main/webapp/js/addrole.js b/src/main/webapp/js/addrole.js
index c42663d..049b2ac 100644
--- a/src/main/webapp/js/addrole.js
+++ b/src/main/webapp/js/addrole.js
@@ -4,7 +4,7 @@
/**
* Adds a global role
*/
-const addGlobalRole = () => {
+function addGlobalRole() {
const roleName = document.getElementById('globalRoleName').value;
if (!roleName || roleName.length < 3) {
alert('Please enter a valid name for the role to be added.');
@@ -13,7 +13,9 @@ const addGlobalRole = () => {
const response = {
name: roleName,
- permissions: document.getElementById('global-permission-select').getValue(),
+ permissions: Array.from(document.getElementById('global-permission-select').options)
+ .filter(option => option.selected)
+ .map(option => option.value)
};
if (response.permissions.length <= 0) {
@@ -28,7 +30,7 @@ const addGlobalRole = () => {
/**
* Adds a Folder Role
*/
-const addFolderRole = () => {
+function addFolderRole() {
const roleName = document.getElementById('folderRoleName').value;
if (!roleName || roleName.length < 3) {
alert('Please enter a valid name for the role to be added');
@@ -37,8 +39,12 @@ const addFolderRole = () => {
const response = {
name: roleName,
- permissions: document.getElementById('folder-permission-select').getValue(),
- folderNames: document.getElementById('folder-select').getValue(),
+ permissions: Array.from(document.getElementById('folder-permission-select').options)
+ .filter(option => option.selected)
+ .map(option => option.value),
+ folderNames: Array.from(document.getElementById('folder-select').options)
+ .filter(option => option.selected)
+ .map(option => option.value)
};
if (!response.permissions || response.permissions.length <= 0) {
@@ -58,7 +64,7 @@ const addFolderRole = () => {
/**
* Adds an agent Role
*/
-const addAgentRole = () => {
+function addAgentRole() {
const roleName = document.getElementById('agentRoleName').value;
if (!roleName || roleName.length < 3) {
alert('Please enter a valid name for the role to be added');
@@ -67,8 +73,12 @@ const addAgentRole = () => {
const response = {
name: roleName,
- agentNames: document.getElementById('agent-select').getValue(),
- permissions: document.getElementById('agent-permission-select').getValue(),
+ agentNames: Array.from(document.getElementById('agent-select').options)
+ .filter(option => option.selected)
+ .map(option => option.value),
+ permissions: Array.from(document.getElementById('agent-permission-select').options)
+ .filter(option => option.selected)
+ .map(option => option.value)
};
if (!response.permissions || response.permissions.length <= 0) {
@@ -109,3 +119,21 @@ const sendPostRequest = (postUrl, json) => {
xhr.send(JSON.stringify(json));
};
+
+document.addEventListener("DOMContentLoaded", () => {
+ document.querySelectorAll(".add-role-button").forEach((button) => {
+ button.addEventListener("click", (event) => {
+ const { action } = event.target.dataset;
+
+ window[action]();
+ });
+ });
+
+ document.querySelectorAll(".delete-role-form").forEach((form) => {
+ form.addEventListener("submit", (event) => {
+ if (!confirm(event.target.dataset.confirmDeleteText)) {
+ event.preventDefault();
+ }
+ });
+ })
+});
diff --git a/src/main/webapp/js/folders.js b/src/main/webapp/js/folders.js
index 4c980e6..7aa7041 100644
--- a/src/main/webapp/js/folders.js
+++ b/src/main/webapp/js/folders.js
@@ -46,3 +46,7 @@ const renderFoldersAsOptions = (folders) => {
// enable submitting the form
document.getElementById('add-folder-role-button').removeAttribute('disabled');
};
+
+document.addEventListener("DOMContentLoaded", () => {
+ getFolders();
+});
diff --git a/src/main/webapp/js/managesids.js b/src/main/webapp/js/managesids.js
index 0c1f50c..fb6e5f3 100644
--- a/src/main/webapp/js/managesids.js
+++ b/src/main/webapp/js/managesids.js
@@ -72,3 +72,15 @@ function removeSid(roleType, index) {
request.setRequestHeader('Jenkins-Crumb', crumb.value);
request.send(formData);
}
+
+document.addEventListener("DOMContentLoaded", () => {
+ document.querySelectorAll(".sid-action-button").forEach((button) => {
+ button.addEventListener("click", (event) => {
+ const data = event.target.dataset;
+ const index = parseInt(data.index);
+ const { roleType, action } = data;
+
+ window[action](roleType, index);
+ });
+ })
+});