Я хочу знать, знает ли кто-нибудь, как заставить работать мою кнопку выхода из системы.
Моя программа имеет вид:
UI
ui2 <- function(){
tagList(tabPanel(""),
pageWithSidebar(
headerPanel(
""
),
sidebarPanel
(
actionButton("logout", "Logout")
),
mainPanel(tableOutput('aaa'))
)
)
}
ui1 <- function(){
tagList(h2("Hello", align = "center"),
div(id = "login",
wellPanel(textInput("userName", "Username"),
passwordInput("passwd", "Password"),
br(),actionButton("Login", "Log in"),
)}
}
Сервер
server = (function(input, output,session) {
USER <- reactiveValues(Logged=FALSE)
observe({
if (USER$Logged == FALSE) {
if (!is.null(input$Login)) {
if (input$Login > 0) {
Username <- isolate(input$userName)
Password <- isolate(input$passwd)
query <- sprintf({"
SELECT rowid
FROM users
WHERE username='%s' and password ='%s'"},
Username, Password, serialize=F)
db <- RSQLite::dbConnect(RSQLite::SQLite(), dbname="db.sqlite")
user <- RSQLite::dbGetQuery(db, query)
RSQLite::dbDisconnect(db)
if ( length(user$rowid)==1 ) {
USER$Logged <- TRUE
}
}
}
}
})
observe({
if (USER$Logged == FALSE)
{
output$page <- renderUI({div(class="outer",do.call(bootstrapPage,c("",ui1())))})
}
if (USER$Logged == TRUE)
{
output$page <- renderUI({div(class="outer",do.call(navbarPage,c(inverse=TRUE,title = paste("Welcome", isolate(input$userName)," !"),ui2())))})
print(ui)
}
})
observeEvent(input$logout, {
output$page <- renderUI({div(class="outer",do.call(bootstrapPage,c("",ui1())))})
USER$Logged <- FALSE
})
})
Мне нужны все эти пользовательские интерфейсы, и мне сложно присоединиться к ним, потому что я не знаю, как это сделать.
Я попытался использовать следующий код, чтобы вернуть его на домашнюю страницу:
на сервере. R
observeEvent(input$reset_button, {
shinyjs::runjs("window.location.href = 'https://yoursubdomain.shinyapps.io/yourapp';")
})
в пользовательском интерфейсе. R
actionButton("reset_button", "Restart", icon = icon("undo"), class = "btn-info"))
Но этотоже не работает.И я полагаю, что в этом случае с мультиинтерфейсом проще кнопку, которая перенаправляет на домашнюю страницу, чем кнопку для выхода.
Можете ли вы мне помочь?Кто-нибудь знает как?