Настройка ввода текста для получения имени пользователя и пароля в R Shiny - PullRequest
2 голосов
/ 11 марта 2019

Я сейчас разрабатываю блестящее приложение.Мне нужно иметь модуль входа в начале приложения.У меня есть желаемый вывод.

enter image description here

Но я не получаю вывод, как показано выше.

Этот код используется в ui.R

library(shiny)
library(shinyWidgets)
shinyUI(
  fluidPage(
    setBackgroundColor(color = "#29667a"),
    fluidRow(
      column(8, align = "center", offset = 2,
             textInput("name", label = " ", value = " ",width = "45%"),
             tags$style(type="text/css", "#string { height: 50px; width: 100%; text-align:center;
                        font-size: 30px; display: block;}")
      )
    ),
    fluidRow(
      column(8, align = "center", offset = 2,
             textInput("password", label = " ", value = " ",width = "45%"),
             tags$style(type="text/css", "#string { height: 50px; width: 100%; text-align:center;
                        font-size: 30px; display: block;}")
      )
    ),
    fluidRow(
      column(6, align = "center", offset = 3,
             actionButton("login",label = "Login", width = "60%")),
      tags$style(type = 'text/css',"#button { vertical-align: middle; height: 50px;
                 width: 100%; font-size: 30px;}"))
    )

  )

Кто-нибудь может сказать, как добавить значки в поля имени пользователя и пароля и получить гиперссылку нанижняя часть кнопки действий.В дополнение к этому, поля ввода должны отображаться в середине страницы.Но это отображается вверху страницы.

Пожалуйста, дайте решение для этих требований.

Заранее спасибо !!

1 Ответ

2 голосов
/ 11 марта 2019

Обновлен ответ. На основании комментария. Исходный код shinyWidgets был использован для создания пользовательской функции, которая принимает и значок, и пароль.

library(shiny)
library(shinyWidgets)
library(fontawesome)



## Modifying inbuilt textInputAddon to accept password of shinyWidgets 

## blantantly copied: https://github.com/dreamRs/shinyWidgets/blob/master/R/utils.R
`%AND%` <- function (x, y) {
  if (!is.null(x) && !anyNA(x))
    if (!is.null(y) && !anyNA(y))
      return(y)
  return(NULL)
}

## blantantly copied: https://github.com/dreamRs/shinyWidgets/blob/master/R/input-textaddon.R

passwordInputAddon <- function (inputId, label, value = "", placeholder = NULL, addon, width = NULL)
{
  value <- shiny::restoreInput(id = inputId, default = value)
  htmltools::tags$div(
    class = "form-group shiny-input-container",
    label %AND% htmltools::tags$label(label, `for` = inputId),
    style = if (!is.null(width)) paste0("width: ", htmltools::validateCssUnit(width), ";"),
    htmltools::tags$div(
      style = "margin-bottom: 5px;", class="input-group",
      addon %AND% htmltools::tags$span(class="input-group-addon", addon),
      htmltools::tags$input(
        id = inputId, type = "password", class = "form-control",
        value = value, placeholder = placeholder
      )
    )
  )
}



ui <- shinyUI(
  fluidPage(
    tags$style(".container-fluid {margin-top: 20%}"),
    setBackgroundColor(color = "#29667a"),

      fluidRow(
        column(8, align = "center", offset = 2,
               textInputAddon("name", label = "", placeholder = "Username", addon = icon("user"),width = "45%"),
               tags$style(type="text/css", "#string { height: 50px; width: 100%; text-align:center;
                        font-size: 30px; display: block;}")
        )
      ),
      fluidRow(
        column(8, align = "center", offset = 2,
               passwordInputAddon("password", label = "", placeholder = "Password", addon = icon("key"),width = "45%"),               tags$style(type="text/css", "#string { height: 50px; width: 100%; text-align:center;
                        font-size: 30px; display: block;}")
        )
      ),
      fluidRow(
        column(6, align = "center", offset = 3,
               actionButton("login",label = "Login", width = "60%"))    ),
      fluidRow(
        column(6, align = "center", offset = 3,
               tags$div(HTML("<a href='https://www.github.com'> Forgot Password? </a>"))
        ))
    )






)

server <- function(input, output){

}

shinyApp(ui,server)

enter image description here

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...