Skip to content

Releases: MMVverse/MMVshiny

MMVshiny 1.2.2

Choose a tag to compare

@venelin venelin released this 10 Sep 14:02
1b6dac7

Performance

  • GetType() no longer re-derives the same lookup dozens of times per compound during file
    upload: InitState() computes each parameter's type once and threads it into NAVal() (now
    takes an optional type = to skip its own internal GetType() call).
  • GetType()/GetSource() now use an indexed on = "ID" lookup instead of a full-table scan of
    spec.
  • GetGuiLabel()/GetReportLabel() batch-join all requested ids in one call instead of scanning
    spec once per id — this turned out to matter more than the GetType() fix above, since
    SetSCRawData() calls GetGuiLabel() once per row of the raw Science Cloud upload file, not
    once per spec parameter.
  • CalculateSCInputs() batch-looks-up SCFILTER/SCVALUE/TYPE for all ids once instead of
    scanning state$spec per id inside its loop.

Measured against real uploads through the running MMVFree/MMVSola apps (chromote-driven browser
against a real Shiny reactive session, not a synthetic benchmark): total upload time 4.74s → 3.05s
for MMVFree (28-param spec, 1.55x), 16.1s → 11.8s for MMVSola (166-param spec, 1.37x).

No API changes other than the new optional NAVal(..., type =) argument (additive, backwards
compatible).

Closes #8.

MMVshiny 1.2.1

Choose a tag to compare

@venelin venelin released this 09 Sep 08:57
d8ebe43

Documentation

  • Documented the rationale behind the count<ID> echo-avoidance mechanism (GenerateJavaScriptEventHandlers/GenerateScriptCreatingObservers) in the vignette and in @details on both functions: a server-side update*Input() call and a real user edit both surface as the same input$ID change, so count<ID> triggers on the input's own native browser event instead, which a server push never dispatches.
  • Documented the one real limitation of this mechanism: it does not work on a selectize-enhanced <select>, since selectize's own client-side value-sync path re-dispatches the same native change event a real pick does - this is why CreateUIInput() defaults selectize to FALSE, now explained in its own @details.
  • Cross-referenced issue #3 (event delegation for dynamically-created inputs, e.g. DT-table-embedded ones) from the vignette, since it's closely related.

Prompted by MedicinesForMalariaVenture/MMVFree#63/#66, where this exact pattern was ported to replace a fragile flag-based echo-suppression mechanism that had caused two separate bugs.

Closes #6.

MMVshiny 1.2.0

Choose a tag to compare

@venelin venelin released this 07 May 12:14
01d1e7e

What's new

  • Added checkbox input TYPE: renders as checkboxInput(), wired as a reactive, and supported throughout InitState(), Reset(), Get(), ValidateValue(), CreateUIInput(), GenerateJavaScriptEventHandlers(), and GenerateScriptCreatingObservers().
  • Added UpdateCheckboxInput(): mirrors the existing UpdateSelectInput() pattern and handles MockShinySession correctly in tests.
  • Added DemoApp(): runs the bundled demo app from inst/extdata/MMVshinyDemo.zip.

Fixes and housekeeping

  • Declared missing Imports: magrittr, R.utils, shinyjs, tibble, stats.
  • Added @importFrom for all Shiny UI/update functions, %>%, stats::na.omit, data.table :=/.SD, and shinyjs::js.
  • Added utils::globalVariables() for data.table NSE column names.
  • Fixed @param docs for InitState, GetValidationNote, ValidateValue, GetGuiLabel, GetReportLabel, GenerateScriptRenderingIcons, GenerateScriptCreatingReactives, UpdateSelectInput.
  • Updated DESCRIPTION Title; added build.sh and pull_request_template.md.
  • R CMD check now passes with Status: OK (zero errors, warnings, or notes).

Closes #2.

Updated GUI elements to use CSS classes

Choose a tag to compare

@venelin venelin released this 24 Mar 12:19

This is a minor release doing some GUI element improvements for input fields - attaching CSS classes to inputs and status icons, so that they can be controlled in Web-apps.

Use lighter readxl package to prevent java errors during loading of spec files

Choose a tag to compare

@venelin venelin released this 07 Mar 14:19
1.1.1

Use readxl instead of xlsx package for readiing the parameter spec

New input types: select input, action button input

Choose a tag to compare

@venelin venelin released this 17 Feb 20:43

Added support for two new input types:

  • select input: behaves like radio input but uses a select graphical widget
  • action button input: allows to perform an action defined in column ACTIONEXPR of the specification .xlsx file.

MMVshiny 1.0.0

Choose a tag to compare

@joness-w joness-w released this 01 Apr 11:17

First public release of MMVshiny package. MMVshiny is a package containing functions handling reactive inputs and parameter specification in Shiny apps.