Giter Site home page Giter Site logo

waltz-controls / waltz Goto Github PK

View Code? Open in Web Editor NEW
17.0 4.0 6.0 23.6 MB

A general purpose web application that provides the interface between SCADA(s) system and the scientific users who define and calibrate their experiments

Home Page: https://waltz-docs.readthedocs.io/en/latest/

License: GNU General Public License v3.0

JavaScript 97.04% HTML 0.57% Shell 0.21% CSS 1.85% Dockerfile 0.32%
tango-controls tango-controls-rest tango-controls-web waltz-controls waltz war tango tango-control webix javascript

waltz's Introduction

time tracker codebeat badge Build Status

release License

SonarCloud

Quality Gate Status

Maintainability Rating Reliability Rating Security Rating

Lines of Code Technical Debt Duplicated Lines (%)

Bugs Vulnerabilities Code Smells

Documentation

Docs Documentation Status

Waltz User/Developer guides

Waltz API reference

Other useful resources

Gitter TangoControls

Videos

[1] UI and features presentation, 2018

[2] Tech stack presentation: Waltz (ex. TangoWebapp) + Tango REST + Tango Controls, 2017

[3] Waltz Workshop@DESY, 2019, part I

[4] Waltz Workshop@DESY, 2019, part II

[5] Waltz Workshop@DESY, 2019, part III

[6] Integrating React based widget into Waltz

Slides

[1] TangoWebapp Insights, 32 Tango Users meeting, 2018

Live demo

To run the live demo click on the image

User: tango-cs Pass: tango

Getting started

  1. Execute docker-compose.yml using docker-compose i.e. docker-compose up
  2. Open browser and navigate to http://localhost:8080/waltz
  3. Login using tango-cs/tango
  4. Explore Tango Controls via Waltz...

Developer requirements

  • Tango Controls environment (tested on Tango 9.3+)
  • Tango REST Server that supports API spec version v1.1 (tested on rest-server-2.1)
  • User-Context
  • Web server that can handle .war files (tested on Apache Tomcat 8+)

Build

This project uses npm and webpack for high level build operations:

$> npm install
$> npm run build

Extra parameters may ne passed to ant script to define default Tango REST API endpoint and/or Tango host:

$> REST_API_PROTOCOL=[http|https] REST_API_HOST=[ip/fqdn] REST_API_PORT=[e.g. 10001]  \
   TANGO_HOST=[ip/fqdn] TANGO_PORT=[e.g. 10000] \
   npm run build

Implementation details

  • Webix is used for UI
  • CodeMirror is used for scripting console
  • Plotly is used to display plots and images

Misc

When using Waltz, please cite:

I.Khokhriakov, O. Merkulova, F. Wilde, Waltz โ€“ A Platform for Tango Controls Web Applications, Proceedings of ICALEPCS2019, WESH3003, 2019 icalepcs2019/papers/wesh3003.pdf

waltz's People

Contributors

helgamond avatar ingvord avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar

waltz's Issues

Handle errors

User must receive a feedback if anything goes wrong.

Currently the most urgent is to handle 401 response code.

Implement DB filter

User must be able to specify which devices he/she wants to see in the tree

Application does not load

If fresh copy of the application (in production mode) is open, it does not load properly. Seems to be webix problem, or tomcat setup. See related issue

Implement bottom toolbar with loading icon

Bottom toolbar should provide:

  • user with ajax operation feedback (UI)
  • platform must provide API to the components, i.e. when ajax operation is invoked icon should be updated with 0-efforts

Dock TestDevice window in the right vertical panel

  • Expandable side bar
  • move list into form and mark it as required
  • implement buttons (use new Platform API e.g. attribute.read())
  • implement output (store result in corresponding field of the entity instance e.g. attribute.values)
  • reuse plot and image (depends on #40)

Redesign main window

A carousel with getting started slides should be good enough (full window)

- [x] show message (and log) after rest refresh

Release 0.1

Originally reported by: Ingvord (Bitbucket: Ingvord, GitHub: Ingvord)


  • DeviceInfo/Polling apply does not update
  • DeviceInfo/Events tab values are not editable
  • DeviceInfo/Events apply is not implemented
  • DeviceInfo/AttributesConfig use multiple info read
  • [v.0.2] DeviceInfo/AttributesConfig apply only update changed attributes
  • DeviceInfo/AttributesConfig/Alarms is not updated after editing/apply does not work
  • [v.0.2] DeviceInfo/PipesConfig is not implemented
  • DeviceInfo/Logging is empty
  • MonitorDevice/Scalar alarm/warning highlighting (header + rows)
  • MonitorDevice/Spectrum/Image do not show data
  • DevicePanel/Attributes info is not updated
  • [v.0.2] DevicePanel/Admin is not implemented
  • [v.0.2] DeviceTree/LogViewer is not implemented
  • [v.0.2] ServersTree is not implemented
  • StartPage is empty
  • ServerWizard fails
  • [v.0.2] ServerWizard add devices to the tree without refresh
  • packaging and CI

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.