From fa0a495f796631fc43b4b130f12293d45697235c Mon Sep 17 00:00:00 2001
From: Eduardo Junior <edujrrib@gmail.com>
Date: Sun, 21 Aug 2016 19:24:05 -0300
Subject: [PATCH 01/10] =?UTF-8?q?Adiciona=20arquivo=20para=20cria=C3=A7?=
 =?UTF-8?q?=C3=A3o=20do=20atalho=20na=20interface=20RStudio?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

---
 inst/rstudio/addins.dcf | 6 ++++++
 1 file changed, 6 insertions(+)
 create mode 100644 inst/rstudio/addins.dcf

diff --git a/inst/rstudio/addins.dcf b/inst/rstudio/addins.dcf
new file mode 100644
index 00000000..3d010dcd
--- /dev/null
+++ b/inst/rstudio/addins.dcf
@@ -0,0 +1,6 @@
+Name: labestData view data
+Description: Aplicativo interativo para visualizar a
+    documentação e estrutura dos datasets além de baixá-la o .csv
+    correspondente.
+Binding: labestDataView
+Interactive: true
-- 
GitLab


From 9580597e7a99d958de6ebf7b07061efa4f762e19 Mon Sep 17 00:00:00 2001
From: Eduardo Junior <edujrrib@gmail.com>
Date: Fri, 26 Aug 2016 14:53:28 -0300
Subject: [PATCH 02/10] =?UTF-8?q?Adiciona=20bot=C3=A3o=20para=20parar=20ex?=
 =?UTF-8?q?ecu=C3=A7=C3=A3o=20do=20R=20no=20console?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

---
 inst/ShinyApps/labestDataView/server.R |  6 ++++++
 inst/ShinyApps/labestDataView/ui.R     | 14 ++++++++++----
 2 files changed, 16 insertions(+), 4 deletions(-)

diff --git a/inst/ShinyApps/labestDataView/server.R b/inst/ShinyApps/labestDataView/server.R
index e39703dc..2fd1f0db 100644
--- a/inst/ShinyApps/labestDataView/server.R
+++ b/inst/ShinyApps/labestDataView/server.R
@@ -69,5 +69,11 @@ shinyServer(
                 )
             }
         })
+
+        observe({
+            if(input$EXIT > 0) {
+                stopApp()
+            }
+        })
     }
 )
diff --git a/inst/ShinyApps/labestDataView/ui.R b/inst/ShinyApps/labestDataView/ui.R
index eb3d3d58..5bb3b3bb 100644
--- a/inst/ShinyApps/labestDataView/ui.R
+++ b/inst/ShinyApps/labestDataView/ui.R
@@ -9,7 +9,7 @@ shinyUI(
 
         fluidRow(
             column(
-                width = 4, offset = 2,
+                width = 4, ## offset = 2,
                 selectInput(inputId = "DATASET",
                             label = "Dados disponíveis",
                             choices = c("Escolha um dataset" = "", L))
@@ -20,6 +20,15 @@ shinyUI(
                            'os dados:</label><br>', sep = "")),
                 downloadButton(outputId = "DOWNLOADDATA",
                                label = "Download tsv")
+            ),
+            column(
+                width = 2, offset = 2,
+                HTML(paste('<label class="control-label">Execução R:',
+                           '</label><br>', sep = "")),
+                actionButton(inputId = "EXIT",
+                             label = "Stop",
+                             class = "btn btn-danger")
+
             )
         ),
 
@@ -28,6 +37,3 @@ shinyUI(
         )
     )
 )
-
-
-
-- 
GitLab


From ebb3edd7dc0b1e6ede9932c9db415a5d79fc3296 Mon Sep 17 00:00:00 2001
From: Eduardo Junior <edujrrib@gmail.com>
Date: Fri, 26 Aug 2016 19:12:39 -0300
Subject: [PATCH 03/10] Merge keywords dataset from walmes159 branch

---
 R/keywords.R      |  34 ++++++++++++++++++++++++++++++++++
 data/keywords.rda | Bin 0 -> 2784 bytes
 man/keywords.Rd   |  40 ++++++++++++++++++++++++++++++++++++++++
 3 files changed, 74 insertions(+)
 create mode 100644 R/keywords.R
 create mode 100644 data/keywords.rda
 create mode 100644 man/keywords.Rd

diff --git a/R/keywords.R b/R/keywords.R
new file mode 100644
index 00000000..fdd702bc
--- /dev/null
+++ b/R/keywords.R
@@ -0,0 +1,34 @@
+#' @name keywords
+#' @title Keywords para Classificar os Conjuntos de Dados
+#' @description As keywords servem para classificar os conjuntos de
+#'     dados por características que definem, geralmente, o tipo de
+#'     análise a ser aplicada aos dados. Isso orienta os estudantes e
+#'     professores a escolherem os conjuntos de dados para listas de
+#'     exercício, por exemplo.
+#' @format Um \code{data.frame} com 596 observações e 2 variáveis, em
+#'     que
+#'
+#' \describe{
+#'
+#' \item{\code{name}}{Nome do conjunto de dados no pacote labestData.}
+#'
+#' \item{\code{keyword}}{Keyword atribuída ao conjunto de dados.}
+#'
+#' }
+#' @examples
+#'
+#' data(keywords)
+#' str(keywords)
+#'
+#' library(lattice)
+#'
+#' tb <- table(keywords$keyword)
+#'
+#' barchart(sort(tb),
+#'          ylab = "Keyword",
+#'          xlab = "Frequência absoluta")
+#'
+#' subset(keywords, keyword == c("DBI"))
+#' subset(keywords, keyword %in% c("proporção", "contagem"))
+#'
+NULL
diff --git a/data/keywords.rda b/data/keywords.rda
new file mode 100644
index 0000000000000000000000000000000000000000..aad0d2e90dd696b5e7aa19a85b8e26f7935b28b0
GIT binary patch
literal 2784
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

literal 0
HcmV?d00001

diff --git a/man/keywords.Rd b/man/keywords.Rd
new file mode 100644
index 00000000..2a172549
--- /dev/null
+++ b/man/keywords.Rd
@@ -0,0 +1,40 @@
+% Generated by roxygen2: do not edit by hand
+% Please edit documentation in R/keywords.R
+\name{keywords}
+\alias{keywords}
+\title{Keywords para Classificar os Conjuntos de Dados}
+\format{Um \code{data.frame} com 596 observações e 2 variáveis, em
+    que
+
+\describe{
+
+\item{\code{name}}{Nome do conjunto de dados no pacote labestData.}
+
+\item{\code{keyword}}{Keyword atribuída ao conjunto de dados.}
+
+}}
+\description{
+As keywords servem para classificar os conjuntos de
+    dados por características que definem, geralmente, o tipo de
+    análise a ser aplicada aos dados. Isso orienta os estudantes e
+    professores a escolherem os conjuntos de dados para listas de
+    exercício, por exemplo.
+}
+\examples{
+
+data(keywords)
+str(keywords)
+
+library(lattice)
+
+tb <- table(keywords$keyword)
+
+barchart(sort(tb),
+         ylab = "Keyword",
+         xlab = "Frequência absoluta")
+
+subset(keywords, keyword == c("DBI"))
+subset(keywords, keyword \%in\% c("proporção", "contagem"))
+
+}
+
-- 
GitLab


From 63bd3e4f390314418fc31b72a21066d2eee50c72 Mon Sep 17 00:00:00 2001
From: Eduardo Junior <edujrrib@gmail.com>
Date: Fri, 26 Aug 2016 21:26:12 -0300
Subject: [PATCH 04/10] Adiciona filtros para obras (nome de autor) e keywords

---
 inst/ShinyApps/labestDataView/global.R | 10 ++---
 inst/ShinyApps/labestDataView/server.R | 51 +++++++++++++++++++++++++-
 inst/ShinyApps/labestDataView/ui.R     | 22 +++++++----
 3 files changed, 70 insertions(+), 13 deletions(-)

diff --git a/inst/ShinyApps/labestDataView/global.R b/inst/ShinyApps/labestDataView/global.R
index 44f4fbc8..280e94a8 100644
--- a/inst/ShinyApps/labestDataView/global.R
+++ b/inst/ShinyApps/labestDataView/global.R
@@ -4,11 +4,11 @@
 library(xtable)
 library(labestData)
 
-L <- ls("package:labestData")
-i <- sapply(L, function(x) {
-    class(eval(parse(text = x)))
-})
-L <- L[i %in% c("data.frame", "numeric", "integer")]
+data(keywords, package = "labestData")
+keywords$obra <- gsub(
+    pattern = "^([A-Z]{1}[a-z]*)[A-Z]{1}[a-z]{1}.*$",
+    replacement = "\\1",
+    x = keywords$name)
 
 howmanydigits <- function(x) {
     x <- na.omit(x)
diff --git a/inst/ShinyApps/labestDataView/server.R b/inst/ShinyApps/labestDataView/server.R
index 2fd1f0db..6a76ca5f 100644
--- a/inst/ShinyApps/labestDataView/server.R
+++ b/inst/ShinyApps/labestDataView/server.R
@@ -8,13 +8,62 @@ shinyServer(
             vers <- as.character(packageVersion("labestData"))
             tagList(
                 h1(paste("labestData: Biblioteca de dados para",
-                         "Ensino de Estatística"), class = "title"),
+                         "aprendizado de Estatística"),
+                   class = "title"),
                 h2(paste("PET-Estatística UFPR - Versão", vers),
                    class = "title"),
                 hr()
             )
         })
 
+        ## Cria listbox para seleção das obras
+        output$OBRAUI <- renderUI({
+            CHOICES <- c("Todas" = "", sort(keywords$obra))
+            selectInput(inputId = "OBRA",
+                        label = "Escolha a(s) obra(s)",
+                        choices = CHOICES, multiple = TRUE)
+        })
+
+        ## Cria listbox para seleção das keywords
+        output$KEYSUI <- renderUI({
+            CHOICES <- c("Todas" = "", levels(keywords$keyword))
+            selectInput(inputId = "KEYS", label = "Keyword(s)",
+                        choices = CHOICES, multiple = TRUE)
+        })
+
+        ## Separa o conjunto de dados com base nos filtros
+        DATACHOICE <- reactive({
+            OBRA <- input$OBRA
+            KEYS <- input$KEYS
+            if (is.null(OBRA) & is.null(KEYS)) {
+                DATA <- keywords
+            }
+            if (is.null(OBRA) & !is.null(KEYS)) {
+                DATA <- subset(keywords, keyword %in% KEYS)
+            }
+            if (!is.null(OBRA) & is.null(KEYS)) {
+                DATA <- subset(keywords, obra %in% OBRA)
+            }
+            if (!is.null(OBRA) & !is.null(KEYS)) {
+                DATA <- subset(keywords,
+                               obra %in% OBRA & keyword %in% KEYS)
+            }
+            return(DATA)
+        })
+
+        ## Cria listbox para seleção dos datasets
+        output$DATASETUI <- renderUI({
+            na <- sort(DATACHOICE()$name)
+            if (length(na) != 0) {
+                CHOICES <- c("Escolha um dataset" = "", na)
+            } else {
+                CHOICES <- c("Não há datasets" = "")
+            }
+            selectInput(inputId = "DATASET",
+                        label = "Dados disponíveis",
+                        choices = CHOICES)
+        })
+
         output$DOC <- renderPrint({
             if (input$DATASET != "") {
                 tmp <- tempfile()
diff --git a/inst/ShinyApps/labestDataView/ui.R b/inst/ShinyApps/labestDataView/ui.R
index 5bb3b3bb..c3cc476c 100644
--- a/inst/ShinyApps/labestDataView/ui.R
+++ b/inst/ShinyApps/labestDataView/ui.R
@@ -8,21 +8,29 @@ shinyUI(
         htmlOutput("HEADER"),
 
         fluidRow(
+
+            column(
+                width = 3,
+                uiOutput("OBRAUI")
+            ),
+            column(
+                width = 2,
+                uiOutput("KEYSUI")
+            ),
             column(
-                width = 4, ## offset = 2,
-                selectInput(inputId = "DATASET",
-                            label = "Dados disponíveis",
-                            choices = c("Escolha um dataset" = "", L))
+                width = 3, ## offset = 2,
+                uiOutput("DATASETUI")
             ),
             column(
-                width = 4,
+                width = 2,
                 HTML(paste('<label class="control-label">Baixe ',
                            'os dados:</label><br>', sep = "")),
                 downloadButton(outputId = "DOWNLOADDATA",
-                               label = "Download tsv")
+                               label = "",
+                               class = "btn btn-primary")
             ),
             column(
-                width = 2, offset = 2,
+                width = 2, ## offset = 2,
                 HTML(paste('<label class="control-label">Execução R:',
                            '</label><br>', sep = "")),
                 actionButton(inputId = "EXIT",
-- 
GitLab


From 358524150423837b4cdd90fda0edfb3d6262b69b Mon Sep 17 00:00:00 2001
From: Eduardo Junior <edujrrib@gmail.com>
Date: Sat, 27 Aug 2016 11:24:11 -0300
Subject: [PATCH 05/10] =?UTF-8?q?Adiciona=20a=20exibi=C3=A7=C3=A3o=20da=20?=
 =?UTF-8?q?tabela=20dos=20datasets=20com=20datatable?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

---
 inst/ShinyApps/labestDataView/server.R | 39 ++++++++++++++++++++------
 1 file changed, 30 insertions(+), 9 deletions(-)

diff --git a/inst/ShinyApps/labestDataView/server.R b/inst/ShinyApps/labestDataView/server.R
index 6a76ca5f..6ff0d52d 100644
--- a/inst/ShinyApps/labestDataView/server.R
+++ b/inst/ShinyApps/labestDataView/server.R
@@ -18,7 +18,8 @@ shinyServer(
 
         ## Cria listbox para seleção das obras
         output$OBRAUI <- renderUI({
-            CHOICES <- c("Todas" = "", sort(keywords$obra))
+            CHOICES <- c("Escolha uma obra" = "", "Todas",
+                         sort(keywords$obra))
             selectInput(inputId = "OBRA",
                         label = "Escolha a(s) obra(s)",
                         choices = CHOICES, multiple = TRUE)
@@ -35,16 +36,17 @@ shinyServer(
         DATACHOICE <- reactive({
             OBRA <- input$OBRA
             KEYS <- input$KEYS
-            if (is.null(OBRA) & is.null(KEYS)) {
+            OBRAL <- is.null(OBRA) || OBRA == "Todas"
+            if (OBRAL & is.null(KEYS)) {
                 DATA <- keywords
             }
-            if (is.null(OBRA) & !is.null(KEYS)) {
+            if (OBRAL & !is.null(KEYS)) {
                 DATA <- subset(keywords, keyword %in% KEYS)
             }
-            if (!is.null(OBRA) & is.null(KEYS)) {
+            if (!OBRAL & is.null(KEYS)) {
                 DATA <- subset(keywords, obra %in% OBRA)
             }
-            if (!is.null(OBRA) & !is.null(KEYS)) {
+            if (!OBRAL & !is.null(KEYS)) {
                 DATA <- subset(keywords,
                                obra %in% OBRA & keyword %in% KEYS)
             }
@@ -64,6 +66,13 @@ shinyServer(
                         choices = CHOICES)
         })
 
+        output$DATATABLE <- renderDataTable({
+            da <- DATACHOICE()
+            names(da) <- c("Dataset", "Keyword", "Obra")
+            da[order(da$Dataset), c(3, 2, 1)]
+        }, options = list(lengthMenu = c(5, 10, 25, 50),
+                          pageLength = 5))
+
         output$DOC <- renderPrint({
             if (input$DATASET != "") {
                 tmp <- tempfile()
@@ -72,7 +81,9 @@ shinyServer(
                 headfoot <- grep("body", out)
                 cat(out[(headfoot[1] + 1):(headfoot[2] - 2)],
                     sep = "\n")
-            } else return("Processando")
+            } else {
+                cat("Selecione o conjunto de dados.")
+            }
         })
 
         output$TABLE <- renderPrint({
@@ -92,7 +103,9 @@ shinyServer(
                             })
                 dig <- sapply(a, howmanydigits)
                 print(xtable(a, digits = c(0, dig)), type = "html")
-            } else return("Processando")
+            } else {
+                cat("Selecione o conjunto de dados")
+            }
         })
 
         output$DOWNLOADDATA <- downloadHandler(
@@ -108,10 +121,18 @@ shinyServer(
             })
 
         output$TABLE_DOC <- renderUI({
-            if(input$DATASET == "") {
-                return(includeMarkdown("ABOUT.md"))
+            test <- input$DATASET == "" & is.null(input$OBRA) &
+                is.null(input$KEYS)
+            if (test) {
+                tagList(
+                    hr(),
+                    includeMarkdown("ABOUT.md")## ,
+                    ## dataTableOutput("DATATABLE")
+                )
             } else {
                 tabsetPanel(
+                    tabPanel("Lista de Datasets",
+                             dataTableOutput("DATATABLE")),
                     tabPanel("Documentação", uiOutput("DOC")),
                     tabPanel("Tabela de dados",
                              tableOutput("TABLE"))
-- 
GitLab


From 53fd0ee43a57138e2f17c8ccff81a8c4023718fb Mon Sep 17 00:00:00 2001
From: Eduardo Junior <edujrrib@gmail.com>
Date: Sat, 27 Aug 2016 11:57:20 -0300
Subject: [PATCH 06/10] =?UTF-8?q?Remove=20informa=C3=A7=C3=A3o=20dos=20aut?=
 =?UTF-8?q?ores=20e=20alinha=20logo=20a=20esquerda?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

---
 inst/ShinyApps/labestDataView/ABOUT.md | 25 +------------------------
 1 file changed, 1 insertion(+), 24 deletions(-)

diff --git a/inst/ShinyApps/labestDataView/ABOUT.md b/inst/ShinyApps/labestDataView/ABOUT.md
index f3fa4c97..00469d60 100644
--- a/inst/ShinyApps/labestDataView/ABOUT.md
+++ b/inst/ShinyApps/labestDataView/ABOUT.md
@@ -1,8 +1,6 @@
 ***
 
-<center>
-<img src = 'labestDataLogo.svg' height = '120px'></img>
-</center>
+<img src='labestDataLogo.svg' height='120px' align='left' style='margin-right: 30px;'></img>
 
 O [labestData] é um projeto coletivo do [PET-Estatística UFPR] que visa
 contribuir com o Departamento de Estatística, e a comunidade científica
@@ -12,27 +10,6 @@ ensino de Estatística. Todo o projeto é desenvolvido sob versionamento
 [Git] e mantido nos nos serviços de hospedagem remota [GitLab do C3SL] e
 [GitHub].
 
-### Autores ###
-
-O [labestData] é uma iniciativa coletiva do grupo [PET-Estatística UFPR]
-para contribuir com a comunidade Estatística. Assim os contribuidores do
-projeto são os bolsistas do programa e voluntários. Todos estão listados
-abaixo:
-
-   - Altamiro Antonio Basiewics <alfbasiewics@bol.com.br>
-   - Angela Luiza Cunha Legey <angelalegey@gmail.com>
-   - Bruna Davies Wundervald <brunadaviesw@gmail.com>
-   - Bruno Geronymo <geronymobruno@hotmail.com>
-   - Daniel Ikenaga <oladani@gmail.com>
-   - Eduardo Elias Ribeiro Junior <edujrrib@gmail.com>
-   - Gabriel Sartori Klostermann <gabrielsartori2008@gmail.com>
-   - Jhenifer Caetano Veloso <jhenicaet@gmail.com>
-   - Monica Ludmila Hintz De Oliveira <monica.ludmila@gmail.com>
-   - Paula Alessandra Zeizer Dimas <alessandra.zeizer@gmail.com>
-   - Alcides Conte Neto neto_conte@hotmail.com
-   - Walmes Marques Zeviani <walmes@ufpr.br>
-   - Cesar Augusto Taconeli <taconeli@ufpr.br>
-
 [Git]: https://git-scm.com/
 [GitHub]: https://github.com/pet-estatistica/labestData
 [GitLab do C3SL]: https://gitlab.c3sl.ufpr.br/pet-estatistica/labestData
-- 
GitLab


From 1232f0381be50500aa8be74871c0d1106450d017 Mon Sep 17 00:00:00 2001
From: Eduardo Junior <edujrrib@gmail.com>
Date: Sat, 27 Aug 2016 12:00:54 -0300
Subject: [PATCH 07/10] Corrige o restart das abas

---
 inst/ShinyApps/labestDataView/server.R | 40 +++++++++++++++++---------
 1 file changed, 26 insertions(+), 14 deletions(-)

diff --git a/inst/ShinyApps/labestDataView/server.R b/inst/ShinyApps/labestDataView/server.R
index 6ff0d52d..c98ec179 100644
--- a/inst/ShinyApps/labestDataView/server.R
+++ b/inst/ShinyApps/labestDataView/server.R
@@ -104,7 +104,7 @@ shinyServer(
                 dig <- sapply(a, howmanydigits)
                 print(xtable(a, digits = c(0, dig)), type = "html")
             } else {
-                cat("Selecione o conjunto de dados")
+                cat("Selecione o conjunto de dados.")
             }
         })
 
@@ -120,23 +120,35 @@ shinyServer(
                             quote = FALSE)
             })
 
+        ## Para fixar a aba selecionada
+        aba <- reactiveValues(x = "datasets")
+        observeEvent(input$TAB, {
+            aba$x <- input$TAB
+        })
+
         output$TABLE_DOC <- renderUI({
             test <- input$DATASET == "" & is.null(input$OBRA) &
                 is.null(input$KEYS)
-            if (test) {
-                tagList(
-                    hr(),
-                    includeMarkdown("ABOUT.md")## ,
-                    ## dataTableOutput("DATATABLE")
-                )
+            if (length(test) == 0) {
+                includeMarkdown("ABOUT.md")
             } else {
-                tabsetPanel(
-                    tabPanel("Lista de Datasets",
-                             dataTableOutput("DATATABLE")),
-                    tabPanel("Documentação", uiOutput("DOC")),
-                    tabPanel("Tabela de dados",
-                             tableOutput("TABLE"))
-                )
+                if (test) {
+                    return(includeMarkdown("ABOUT.md"))
+                } else {
+                    tabsetPanel(
+                        id = "TAB",
+                        selected = aba$x,
+                        tabPanel("Lista de Datasets",
+                                 dataTableOutput("DATATABLE"),
+                                 value = "datasets"),
+                        tabPanel("Documentação",
+                                 uiOutput("DOC"),
+                                 value = "doc"),
+                        tabPanel("Tabela de dados",
+                                 tableOutput("TABLE"),
+                                 value = "tabela")
+                    )
+                }
             }
         })
 
-- 
GitLab


From f6c8fa801226d084bcb0d95192945383fa999323 Mon Sep 17 00:00:00 2001
From: Eduardo Junior <edujrrib@gmail.com>
Date: Sat, 27 Aug 2016 12:29:44 -0300
Subject: [PATCH 08/10] Remove arquivo RData adicionado acidentalmente em
 alessandra124

---
 .RData | Bin 3464 -> 0 bytes
 1 file changed, 0 insertions(+), 0 deletions(-)
 delete mode 100644 .RData

diff --git a/.RData b/.RData
deleted file mode 100644
index 92fdfd0dfaba99957061f42957ba8199cbd322ed..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001

literal 3464
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

-- 
GitLab


From 2f6e5dad6589dabc16e797f7f03fedd30fc58acc Mon Sep 17 00:00:00 2001
From: Eduardo Junior <edujrrib@gmail.com>
Date: Sat, 27 Aug 2016 13:03:06 -0300
Subject: [PATCH 09/10] =?UTF-8?q?Corrige=20a=20escrita=20de=20vari=C3=A1ve?=
 =?UTF-8?q?is=20e=20fun=C3=A7=C4=A9es=20no=20.GlobalEnv?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

Remove o global.R para que os objetos não sejam salvos na sessão do
usuário (http://shiny.rstudio.com/articles/scoping.html)
---
 inst/ShinyApps/labestDataView/global.R | 31 -------------------------
 inst/ShinyApps/labestDataView/server.R | 32 ++++++++++++++++++++++++++
 2 files changed, 32 insertions(+), 31 deletions(-)
 delete mode 100644 inst/ShinyApps/labestDataView/global.R

diff --git a/inst/ShinyApps/labestDataView/global.R b/inst/ShinyApps/labestDataView/global.R
deleted file mode 100644
index 280e94a8..00000000
--- a/inst/ShinyApps/labestDataView/global.R
+++ /dev/null
@@ -1,31 +0,0 @@
-##-------------------------------------------
-## global.R
-
-library(xtable)
-library(labestData)
-
-data(keywords, package = "labestData")
-keywords$obra <- gsub(
-    pattern = "^([A-Z]{1}[a-z]*)[A-Z]{1}[a-z]{1}.*$",
-    replacement = "\\1",
-    x = keywords$name)
-
-howmanydigits <- function(x) {
-    x <- na.omit(x)
-    if (is.numeric(x) && all(x%%1 == 0)) {
-        0
-    } else if (is.numeric(x)) {
-        1 + floor(log10(1/min(diff(sort(unique(x))))))
-    } else {
-        0
-    }
-}
-
-static_help <- function(pkg, topic, out,
-                        links = tools::findHTMLlinks()) {
-    pkgRdDB = tools:::fetchRdDB(file.path(
-        find.package(pkg), 'help', pkg))
-    force(links)
-    tools::Rd2HTML(pkgRdDB[[topic]], out, package = pkg,
-                   Links = links, no_links = is.null(links))
-}
diff --git a/inst/ShinyApps/labestDataView/server.R b/inst/ShinyApps/labestDataView/server.R
index c98ec179..e91dbf34 100644
--- a/inst/ShinyApps/labestDataView/server.R
+++ b/inst/ShinyApps/labestDataView/server.R
@@ -1,3 +1,35 @@
+##-------------------------------------------
+## Variables and functions
+
+library(xtable)
+library(labestData)
+
+## data(keywords, package = "labestData")
+keywords$obra <- gsub(
+    pattern = "^([A-Z]{1}[a-z]*)[A-Z]{1}[a-z]{1}.*$",
+    replacement = "\\1",
+    x = keywords$name)
+
+howmanydigits <- function(x) {
+    x <- na.omit(x)
+    if (is.numeric(x) && all(x%%1 == 0)) {
+        0
+    } else if (is.numeric(x)) {
+        1 + floor(log10(1/min(diff(sort(unique(x))))))
+    } else {
+        0
+    }
+}
+
+static_help <- function(pkg, topic, out,
+                        links = tools::findHTMLlinks()) {
+    pkgRdDB = tools:::fetchRdDB(file.path(
+        find.package(pkg), 'help', pkg))
+    force(links)
+    tools::Rd2HTML(pkgRdDB[[topic]], out, package = pkg,
+                   Links = links, no_links = is.null(links))
+}
+
 ##-------------------------------------------
 ## server.R
 
-- 
GitLab


From 7a5900a221baecfe601bfad2fec0c29858ed8d9e Mon Sep 17 00:00:00 2001
From: Eduardo Junior <edujrrib@gmail.com>
Date: Sat, 27 Aug 2016 13:07:15 -0300
Subject: [PATCH 10/10] =?UTF-8?q?Troca=20label=20para=20evitar=20quebra=20?=
 =?UTF-8?q?de=20linha=20em=20resolu=C3=A7=C3=B5es=20menores?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

---
 inst/ShinyApps/labestDataView/ui.R | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/inst/ShinyApps/labestDataView/ui.R b/inst/ShinyApps/labestDataView/ui.R
index c3cc476c..c36e37f0 100644
--- a/inst/ShinyApps/labestDataView/ui.R
+++ b/inst/ShinyApps/labestDataView/ui.R
@@ -23,8 +23,8 @@ shinyUI(
             ),
             column(
                 width = 2,
-                HTML(paste('<label class="control-label">Baixe ',
-                           'os dados:</label><br>', sep = "")),
+                HTML(paste('<label class="control-label">Download:',
+                           '</label><br>', sep = "")),
                 downloadButton(outputId = "DOWNLOADDATA",
                                label = "",
                                class = "btn btn-primary")
-- 
GitLab