diff --git a/webapp/sources/rudder/rudder-web/src/main/elm/sources/Accounts/ViewModals.elm b/webapp/sources/rudder/rudder-web/src/main/elm/sources/Accounts/ViewModals.elm index 3db083e40f9..5d2385f59a7 100644 --- a/webapp/sources/rudder/rudder-web/src/main/elm/sources/Accounts/ViewModals.elm +++ b/webapp/sources/rudder/rudder-web/src/main/elm/sources/Accounts/ViewModals.elm @@ -25,7 +25,7 @@ displayModals model = EditAccount a -> ( String.isEmpty account.name , String.isEmpty account.name , (a.name/=account.name && List.member account.name (List.map .name model.accounts)) ) _ -> ( False , False , False ) - modalClass = if model.ui.modalState == NoModal then "" else " in" + modalClass = if model.ui.modalState == NoModal then "" else " show" (modalTitle, btnTxt, btnClass) = case model.ui.modalState of NoModal -> ( "" , "Save", "default") @@ -120,14 +120,12 @@ displayModals model = ) in div [class ("modal fade " ++ modalClass)] - [ div [class "modal-backdrop fade in", onClick (ToggleEditPopup NoModal)][] + [ div [class "modal-backdrop fade show", onClick (ToggleEditPopup NoModal)][] , div [class "modal-dialog"] [ div [class "modal-content"] [ div [class "modal-header"] - [ div [class "close", attribute "data-bs-dismiss" "modal", onClick (ToggleEditPopup NoModal)] - [ span[][text (String.fromChar (Char.fromCode 215))] - ] - , h4 [class "modal-title"] [text modalTitle] + [ h5 [class "modal-title"] [text modalTitle] + , button [type_ "button", class "btn-close", attribute "data-bs-dismiss" "modal", attribute "aria-label" "Close"][] ] , div [class "modal-body"] [ popupBody @@ -152,17 +150,15 @@ displayCopy model = t = case model.ui.copyState of NoCopy -> "" Token string -> string - modalClass = if model.ui.copyState == NoCopy then "" else " in" + modalClass = if model.ui.copyState == NoCopy then "" else " show" in div [class ("modal fade" ++ modalClass)] - [ div [class "modal-backdrop fade in", onClick (CloseCopyPopup)][] + [ div [class "modal-backdrop fade show", onClick (CloseCopyPopup)][] , div [class "modal-dialog"] [ div [class "modal-content"] [ div [class "modal-header"] - [ div [class "close", attribute "data-bs-dismiss" "modal", onClick (CloseCopyPopup)] - [ span[][text (String.fromChar (Char.fromCode 215))] - ] - , h4 [class "modal-title"] [text "Copy the token"] + [ h5 [class "modal-title"] [text "Copy the token"] + , button [type_ "button", class "btn-close", attribute "data-bs-dismiss" "modal", attribute "aria-label" "Close"][] ] , div [class "modal-body"] [ div[] diff --git a/webapp/sources/rudder/rudder-web/src/main/elm/sources/Editor/ViewTechnique.elm b/webapp/sources/rudder/rudder-web/src/main/elm/sources/Editor/ViewTechnique.elm index dfd312e07c1..282d0dacb63 100755 --- a/webapp/sources/rudder/rudder-web/src/main/elm/sources/Editor/ViewTechnique.elm +++ b/webapp/sources/rudder/rudder-web/src/main/elm/sources/Editor/ViewTechnique.elm @@ -406,7 +406,7 @@ view model = div [ class "modal-dialog" ] [ div [ class "modal-content" ] [-- uib-modal-transclude=""> div [ class "modal-header ng-scope" ] [ - h3 [ class "modal-title" ] [ text "Delete Technique"] + h5 [ class "modal-title" ] [ text "Delete Technique"] ] , div [ class "modal-body" ] [ text ("Are you sure you want to Delete Technique '") diff --git a/webapp/sources/rudder/rudder-web/src/main/elm/sources/NodeProperties/ViewUtils.elm b/webapp/sources/rudder/rudder-web/src/main/elm/sources/NodeProperties/ViewUtils.elm index a01e057a7b5..49e6d03c228 100644 --- a/webapp/sources/rudder/rudder-web/src/main/elm/sources/NodeProperties/ViewUtils.elm +++ b/webapp/sources/rudder/rudder-web/src/main/elm/sources/NodeProperties/ViewUtils.elm @@ -249,12 +249,12 @@ modalDelete model = case model.ui.modalState of NoModal -> text "" Deletion name -> - div [ tabindex -1, class "modal fade in", style "z-index" "1050", style "display" "block" ] - [ div [class "modal-backdrop fade in"][] + div [ tabindex -1, class "modal fade show", style "z-index" "1050", style "display" "block" ] + [ div [class "modal-backdrop fade show", onClick (ClosePopup Ignore)][] , div [ class "modal-dialog" ] [ div [ class "modal-content" ] [ div [ class "modal-header ng-scope" ] - [ h3 [ class "modal-title" ] [ text "Delete property"] ] + [ h5 [ class "modal-title" ] [ text "Delete property"] ] , div [ class "modal-body" ] [ text ("Are you sure you want to delete property '"++ name ++"'?") ] , div [ class "modal-footer" ] diff --git a/webapp/sources/rudder/rudder-web/src/main/elm/sources/Rules/View.elm b/webapp/sources/rudder/rudder-web/src/main/elm/sources/Rules/View.elm index c893459c63d..309623f7601 100644 --- a/webapp/sources/rudder/rudder-web/src/main/elm/sources/Rules/View.elm +++ b/webapp/sources/rudder/rudder-web/src/main/elm/sources/Rules/View.elm @@ -167,12 +167,12 @@ view model = , False ) in - div [ tabindex -1, class "modal fade in", style "z-index" "1050", style "display" "block" ] - [ div [class "modal-backdrop fade in"][] + div [ tabindex -1, class "modal fade show", style "z-index" "1050", style "display" "block" ] + [ div [class "modal-backdrop fade show", onClick (ClosePopup Ignore)][] , div [ class "modal-dialog" ] [ div [ class "modal-content" ] [ div [ class "modal-header ng-scope" ] [ - h3 [ class "modal-title" ] [ text "Delete Rule"] + h5 [ class "modal-title" ] [ text "Delete Rule"] ] , div [ class "modal-body" ] [ h4 [class "text-center"][text ("Are you sure you want to Delete rule '"++ rule.name ++"'?")] @@ -203,12 +203,12 @@ view model = ) in - div [ tabindex -1, class "modal fade in", style "z-index" "1050", style "display" "block" ] - [ div [class "modal-backdrop fade in"][] + div [ tabindex -1, class "modal fade show", style "z-index" "1050", style "display" "block" ] + [ div [class "modal-backdrop fade show", onClick (ClosePopup Ignore)][] , div [ class "modal-dialog" ] [ div [ class "modal-content" ] [ div [ class "modal-header ng-scope" ] [ - h3 [ class "modal-title" ] [ text (txtDisable ++" Rule")] + h5[ class "modal-title" ] [ text (txtDisable ++" Rule")] ] , div [ class "modal-body" ] [ h4 [class "text-center"][text ("Are you sure you want to "++ String.toLower txtDisable ++" rule '"++ rule.name ++"'?")] @@ -228,12 +228,12 @@ view model = ] ] DeletionValidationCat category -> - div [ tabindex -1, class "modal fade in", style "z-index" "1050", style "display" "block" ] - [ div [class "modal-backdrop fade in"][] + div [ tabindex -1, class "modal fade show", style "z-index" "1050", style "display" "block" ] + [ div [class "modal-backdrop fade show", onClick (ClosePopup Ignore)][] , div [ class "modal-dialog" ] [ div [ class "modal-content" ] [ div [ class "modal-header ng-scope" ] [ - h3 [ class "modal-title" ] [ text "Delete category"] + h5 [ class "modal-title" ] [ text "Delete category"] ] , div [ class "modal-body" ] [ h4 [class "text-center"][text ("Are you sure you want to delete category '"++ category.name ++"'?")] @@ -253,12 +253,12 @@ view model = let action = if creation then "Create" else "Update" in - div [ tabindex -1, class "modal fade in", style "z-index" "1050", style "display" "block" ] - [ div [class "modal-backdrop fade in"][] + div [ tabindex -1, class "modal fade show", style "z-index" "1050", style "display" "block" ] + [ div [class "modal-backdrop fade show", onClick (ClosePopup Ignore)][] , div [ class "modal-dialog" ] [ div [ class "modal-content" ] [ div [ class "modal-header ng-scope" ] - [ h3 [ class "modal-title" ] [ text (action ++" Rule")] + [ h5 [ class "modal-title" ] [ text (action ++" Rule")] ] , div [ class "modal-body" ] [ h4 [class "text-center"] diff --git a/webapp/sources/rudder/rudder-web/src/main/javascript/rudder/rudder.js b/webapp/sources/rudder/rudder-web/src/main/javascript/rudder/rudder.js index 828f397a045..18abf01250c 100644 --- a/webapp/sources/rudder/rudder-web/src/main/javascript/rudder/rudder.js +++ b/webapp/sources/rudder/rudder-web/src/main/javascript/rudder/rudder.js @@ -60,11 +60,7 @@ function escapeHTML (string) { } function callPopupWithTimeout(timeout, popupName){ - setTimeout("createPopup('"+popupName+"')", timeout); -} - -function createPopup(popupName){ - $('#'+popupName).bsModal('show'); + setTimeout("initBsModal('"+popupName+"')", timeout); } function reverseErrorDetails(){ @@ -146,14 +142,6 @@ function jqCheckAll( id, name ) }); }); - // Logout - $(function() { - $('#logout').click(function() { - $('#ModalLogOut').bsModal('show'); - return false; - }); - }); - function processKey(e , buttonId){ if (null == e) e = window.event ; @@ -853,7 +841,18 @@ function initBsTooltips(){ function removeBsTooltips(){ document.querySelectorAll(".tooltip").forEach(e => e.remove()); } -//tooltip.hide() +function initBsModal(modalName){ + var selector = document.querySelector('#' + modalName); + var modal = bootstrap.Modal.getInstance(selector); + var instance = (modal === null || modal === undefined) ? new bootstrap.Modal('#'+modalName) : modal; + instance.show(); +} +function hideBsModal(modalName){ + var selector = document.querySelector('#' + modalName); + var modal = bootstrap.Modal.getInstance(selector); + if(modal === null || modal === undefined) return false; + modal.hide(); +} function initBsTabs(){ var triggerTabList = [].slice.call(document.querySelectorAll('[data-bs-toggle="tab"]')); triggerTabList.forEach(function (triggerEl) { diff --git a/webapp/sources/rudder/rudder-web/src/main/scala/com/normation/rudder/web/comet/AsyncDeployment.scala b/webapp/sources/rudder/rudder-web/src/main/scala/com/normation/rudder/web/comet/AsyncDeployment.scala index c242084877d..a367e2fc932 100644 --- a/webapp/sources/rudder/rudder-web/src/main/scala/com/normation/rudder/web/comet/AsyncDeployment.scala +++ b/webapp/sources/rudder/rudder-web/src/main/scala/com/normation/rudder/web/comet/AsyncDeployment.scala @@ -166,7 +166,7 @@ class AsyncDeployment extends CometActor with CometListener with Loggable { } } - val callback = JsRaw("$('#errorDetailsDialog').bsModal('show');") & SetHtml("errorDetailsMessage", popupContent) + val callback = JsRaw("initBsModal('errorDetailsDialog');") & SetHtml("errorDetailsMessage", popupContent) commonStatement( start, @@ -185,7 +185,7 @@ class AsyncDeployment extends CometActor with CometListener with Loggable { } private[this] def closePopup(): JsCmd = { - JsRaw("""$('#generatePoliciesDialog').hide();""") + JsRaw("""hideBsModal('generatePoliciesDialog')""") } private[this] def fullPolicyGeneration: NodeSeq = { @@ -207,7 +207,7 @@ class AsyncDeployment extends CometActor with CometListener with Loggable { } private[this] def showGeneratePoliciesPopup: NodeSeq = { - val callback = JsRaw("$('#generatePoliciesDialog').bsModal('show');") + val callback = JsRaw("initBsModal('generatePoliciesDialog')") { SHtml.a( Text("Regenerate all policies"), @@ -239,16 +239,12 @@ class AsyncDeployment extends CometActor with CometListener with Loggable { } private[this] def errorPopup = { - diff --git a/webapp/sources/rudder/rudder-web/src/main/webapp/templates-hidden/Popup/refuse_new_server.html b/webapp/sources/rudder/rudder-web/src/main/webapp/templates-hidden/Popup/refuse_new_server.html index 34de7af305b..36570eb3514 100644 --- a/webapp/sources/rudder/rudder-web/src/main/webapp/templates-hidden/Popup/refuse_new_server.html +++ b/webapp/sources/rudder/rudder-web/src/main/webapp/templates-hidden/Popup/refuse_new_server.html @@ -6,16 +6,12 @@ --> -