Я пытаюсь оптимизировать UX для моего конечного пользователя в приложении для отслеживания времени. По сути, он извлекает данные из api календаря Google, упорядочивает их в tibble
и позволяет пользователю выбирать / отменять выбор / редактировать собрания и назначать их проектам. Проекты выбираются в раскрывающемся меню, которое я использовал для сборки selectizeInput
, но получаю что-то похожее на selectInput
. Я хочу использовать shiny::selectizeInput
внутри DT::datatable
в Shiny. Я могу заставить раскрывающийся список работать. Однако я теряю функцию поиска, которая поставляется с вводом выбора. В моем примере с игрушкой верхний selectizeInput, который вы можете щелкнуть и ввести параметры, которые вы ищете. Тот, который находится в таблице данных, вы все равно можете это сделать, но со сложными именами для UX было бы лучше, если бы вы могли видеть, что вы набираете.
Я обнаружил эту проблему в репозитории github, где производитель пакета DT сказал, что подобное может быть невозможно. Впрочем, ему 3 года, может кто придумал обходной путь. https://github.com/rstudio/DT/issues/390
Я также пробовал перейти на другой тип пользовательского интерфейса, tuicalendr
, который для моих целей отлично работает, но столкнулся с той же проблемой. Мой опыт работы с JS ограничен, поэтому у меня возникли проблемы с настройкой JS в Shiny.
library(shiny)
library(DT)
ui <- fluidPage(
selectizeInput("input",
label = "",
choices = letters[1:26],
selected = letters[1]),
DTOutput("datatable")
)
server <- function(input, output) {
output$datatable<- renderDataTable({
DT::datatable(data.frame(a = as.character(selectizeInput("dtinput",
label = "",
choices = letters[1:26],
selected = letters[1]),
stringsAsFactors = F)),
escape = F)
})
}
# Run the application
shinyApp(ui = ui, server = server)
Я открыт для других подходов, идеальным было бы отображение данных в виде календаря с флажком и раскрывающимся меню сразу под заголовком. Но если бы я мог решить эту проблему, я бы сам мог адаптировать код к календарю.