Elementos deshabilitados cuando Shiny está ocupado

Estoy usando un pedazo dejavascript de esta pregunta:ASI QU

Funciona para botones, pero también me gustaría deshabilitar cosas comosliderInput, selectInput ytextInput también

Intenté reemplazar el 'botón' con 'entrada' que deshabilita eltextinput campos. Me pregunto si hay una manera de deshabilitar todos los elementos de una vez.

l problema más grande es el siguiente: cuando abres ladropdownbutton, el botón de cierre normalmente debería eliminar lamodal dialog en caso de que la etiqueta de JavaScript se elimine de la aplicación de demostración a continuación. Sin embargo, cuando el script está en la aplicación, el botón de cerrar ya no funciona por alguna razón. Todavía imprime el comando de texto, lo que significa que se observa, pero el modal no se cierra. El otro botón en el diálogo todavía funciona normalmente.

App:

library(shiny)
library(shinyWidgets)

ui <- fluidPage(
  h3('Disable buttons while running'),
  actionButton('btn_run','Run long process'),
  hr(),
  h3('Inputs'),
  actionButton('btn1','Button 1'),
  hr(),
  textInput('text1', 'Text1',"my text:"),
  hr(),
  selectInput('select1', 'Selectinput', choices = c('A', 'B', 'C'), selected = 'A'),
  hr(),
  h5('Dropdown'),
  dropdownButton(inputId = "MyDropDown",
                 h3("This is a dropdown"),
                 actionButton('btn_run2','Run other long process'),
                 fluidRow(actionButton( "CloseDropDown", "Close"), style = "float: right; margin-right:10px"),
                 icon = icon("tasks"),
                 tooltip = tooltipOptions(title = "Click to open"), width = "500px"),
  hr(),
  sliderInput('slid3','Slider 1',min=0,max=1,value=0.5),


tags$script(HTML("$(document).on('shiny:busy', function() {
  var inputs = document.getElementsByTagName('button');
console.log(inputs);
for (var i = 0; i < inputs.length; i++) {
inputs[i].disabled = true;
}
});

$(document).on('shiny:idle', function() {
var inputs = document.getElementsByTagName('button');
console.log(inputs);
for (var i = 0; i < inputs.length; i++) {
inputs[i].disabled = false;
}
})" ))
)

server <- function(input, output, session){

  observeEvent(input$btn_run,{
    Sys.sleep(5)
  })


  observeEvent(input$btn_run2,{
    Sys.sleep(5)
  })

  observeEvent(input$CloseDropDown, {print('closing?')
    toggleDropdownButton(inputId = 'MyDropDown') })

}

shinyApp(ui = ui, server = server)

Respuestas a la pregunta(1)

Su respuesta a la pregunta