Вставка отредактированных значений Datatable в блестящее приложение

Bitbucket с его RESTful API 2.0 поддерживает управление pull-запросами без интерфейса. В CLI вы можете запросить его с помощью CURL. Эта более ранняя версия документации имеет более подробные сведения о интерфейсе.

Получить данные запроса на получение с помощью CURL

Получить полные данные о конкретном запросе на pull:

$ curl --user s3m3n:bbpassword https://bitbucket.org/api/2.0/repositories/s3m3n/reponame/pullrequests/4

В ответ я получаю JSON с полной информацией о моем запросе на тягу №4 (добавьте свое имя пользователя дважды, пароль и повторите команду).

Создайте новый запрос на перенос с помощью RESTClient

]

Чтобы создать новый запрос на перенос, нам нужно предоставить много данных с помощью команды POST ниже, как она выглядит в моем RESTClient:

RESTClient Firefox [/g8]

После стрельбы Bitbucket немедленно показывает запрос на тягу:

Bitbucket screenshot [/g9]

Создайте новый запрос на растяжение с помощью CURL

Вы все равно можете создать тот же запрос на pull с одним лайнером:

$ curl -X POST -H "Content-Type: application/json" -u s3m3n:bbpassword https://bitbucket.org/api/2.0/repositories/s3m3n/reponame/pullrequests -d '{ "title": "Merge some branches", "description": "stackoverflow example", "source": { "branch": { "name": "choose branch to merge with" }, "repository": { "full_name": "s3m3n/reponame" } }, "destination": { "branch": { "name": "choose branch that is getting changes" } }, "reviewers": [ { "username": "some other user needed to review changes" } ], "close_source_branch": false }'

Инструмент браузера REST (прекращено)

Если вы хотите протестировать все возможные методы API-переходов на инструмент браузера REST Bitbucket. Он покажет вам все возможные запросы, возвращая данные реального репо.

2
задан Rich Pauloo 7 March 2019 в 20:21
поделиться

1 ответ

Это должно сработать, но не самая «чистая» реализация:

Мне пришлось вытащить df из блеска, чтобы ваш код работал. Использовал assign для замены df в глобальной среде (не лучшая идея ...) после редактирования данных. Но данные не пересчитываются до нажатия Run. После нажатия Run данные модели перезаписываются: (modelData <- df). Опять же, не самая лучшая идея, вероятно, создание реактивного modelData будет лучшей идеей.

Также взгляните на DT::replaceData. Это может быть лучшей идеей, чем восстановление полного стола.

library(shiny)
library(DT)
library(dplyr)

df <- data.frame(Channel = c("A", "B","C"),
                 Current = c(2000, 3000, 4000),
                 Modified = c(2500, 3500,3000),
                 New_Membership = c(450, 650,700),
                 stringsAsFactors = FALSE)

#### Module 1 renders the first table
tableMod <- function(input, output, session, modelRun,modelData,budget){


  observeEvent( input$x1_cell_edit, {
    cat ('input$x1_cell_edit \n')
    info = input$x1_cell_edit
    str(info)
    i = info$row
    j = info$col
    v = info$value
    df[i, j] <- DT:::coerceValue(v, df[i, j])
    assign("df", df, envir = .GlobalEnv)

  })

  output$x1 <- DT::renderDataTable({
    modelRun()
    modelData <- df
    isolate(
      datatable(
        modelData %>% 
          mutate(New_Membership  = as.numeric(Modified * 0.01)*(budget())),
        selection = 'none', editable = TRUE
      )
    )
  })


}
tableUI <- function(id) {
  ns <- NS(id)
  dataTableOutput(ns("x1"))
}

ui <- function(request) {
  fluidPage(
    tableUI("opfun"),
    numericInput("budget_input", "Total Forecast", value = 2),
    actionButton("opt_run", "Run")
  )
}
server <- function(input, output, session) {

  callModule( tableMod,"opfun",
              modelRun = reactive(input$opt_run),
              modelData = df,
              budget = reactive(input$budget_input))

  observeEvent(input$opt_run, {
    cat('HJE')
  })
}

shinyApp(ui, server, enableBookmarking = "url")
0
ответ дан Jav 7 March 2019 в 20:21
поделиться
Другие вопросы по тегам:

Похожие вопросы: