ui

package
v0.0.0-...-872dfdc Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jun 10, 2016 License: Apache-2.0 Imports: 9 Imported by: 0

README

Embedded UI

This directory contains the client-side code for cockroach's web admin console. These files are embedded into the cockroach binary via the go-bindata package, which is used to generate the embedded.go file in this directory.

Modification

If any modifications are made to the contents of this directory, run make in this directory to generate a new embedded.go, which should then be committed along with the original files. The generated file is committed because making our web admin resource requires additional non-go dependencies

Development

While actively developing the user interface, use make debug in order to run go-bindata in debug mode. This will instruct go-bindata to proxy your local files (rather than using embedded versions) so you'll be able to edit them live without recompiling or restarting the server.

For this change to be picked up, you'll need to run make build in the project root.

Note that only those files that were present the last time you ran make debug will be proxied; if you add a new file, you must run recompile and restart the server after running make debug.

Before committing, be sure to run make to generate a non-debug version of embedded.go. This is enforced by our build system, but forgetting to do this will result in wasted time waiting for the build.

Watch/Livereload

If you want to automatically recompile/copy the typescript/stylus/index files, you can use make watch. This runs Gulp under the hood.

The website can also automatically pick up your changes with [LiveReload] (http://livereload.com/) while make watch is running. The [Chrome LiveReload Plugin] (https://chrome.google.com/webstore/detail/livereload/jnihajbhpnppcggbcgedagnkighmdlei?hl=en) is an easy way to take advantage of this.

Note that if you add a new file, you'll need to restart make watch and run make build in the project root again.

Dependencies

Our admin UI is compiled using a collection of tools that depends on nodejs, so you'll want to have that installed.

We use npm to manage various dependencies; be sure that your node installation includes a recent version of npm. If you observe problems with npm, try updating it using npm install -g npm.

We use Bower to manage frontend dependencies and Typings to manage typescript definition files. Our Makefile automatically installs these tools locally, so for the most part, you can be blissfully ignorant of their use. However, if you wish to add Bower/Typings dependencies (and do not have your own opinions on binstubs), you'll want to run them from the local install using one of:

  • node_modules/.bin/bower install --save <myAwesomeDep>
  • node_modules/.bin/typings install --save <myAwesomeDep>

To modify an existing npm dependency, you'll need to edit package.json in the standard fashion, while to add a new npm dependency, you'll want to run:

	npm install --save <myAwesomeDep>

Either way, complete any npm changes by running:

	rm -r node_modules && npm update && node_modules/.bin/shonkwrap

Be sure to commit any changes to npm-shrinkwrap.json.

The --save modifier and shonkwrap invocation above are necessary to properly lock down dependencies for other developers on the project, so make sure you don't elide them!

Documentation

Overview

Package ui embeds into the Cockroach certain data such as web html and stylesheets.

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func Asset

func Asset(name string) ([]byte, error)

Asset loads and returns the asset for the given name. It returns an error if the asset could not be found or could not be loaded.

func AssetDir

func AssetDir(name string) ([]string, error)

AssetDir returns the file names below a certain directory embedded in the file by go-bindata. For example if you run go-bindata on data/... and data contains the following hierarchy:

data/
  foo.txt
  img/
    a.png
    b.png

then AssetDir("data") would return []string{"foo.txt", "img"} AssetDir("data/img") would return []string{"a.png", "b.png"} AssetDir("foo.txt") and AssetDir("notexist") would return an error AssetDir("") will return []string{"data"}.

func AssetInfo

func AssetInfo(name string) (os.FileInfo, error)

AssetInfo loads and returns the asset info for the given name. It returns an error if the asset could not be found or could not be loaded.

func AssetNames

func AssetNames() []string

AssetNames returns the names of the assets.

func MustAsset

func MustAsset(name string) []byte

MustAsset is like Asset but panics when Asset would return an error. It simplifies safe initialization of global variables.

func RestoreAsset

func RestoreAsset(dir, name string) error

RestoreAsset restores an asset under the given directory

func RestoreAssets

func RestoreAssets(dir, name string) error

RestoreAssets restores an asset under the given directory recursively

Types

This section is empty.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL