├── .gitignore ├── docs └── demo │ ├── fonts │ ├── roboto.woff │ ├── DroidSans.ttf │ ├── roboto.woff2 │ ├── FontAwesome.otf │ ├── DroidSans-Bold.ttf │ ├── celeste_regular.eot │ ├── celeste_regular.ttf │ ├── celeste_regular.woff │ ├── fontawesome-webfont.eot │ ├── fontawesome-webfont.ttf │ ├── fontawesome-webfont.woff │ ├── amplitude-bold-webfont.eot │ ├── amplitude-bold-webfont.ttf │ ├── fontawesome-webfont.woff2 │ ├── amplitude-bold-webfont.woff │ ├── amplitude-light-webfont.eot │ ├── amplitude-light-webfont.ttf │ ├── amplitude-light-webfont.woff │ ├── amplitude-medium-webfont.eot │ ├── amplitude-medium-webfont.ttf │ ├── amplitude-medium-webfont.woff │ ├── amplitude-regular-webfont.eot │ ├── amplitude-regular-webfont.ttf │ ├── amplitude-regular-webfont.woff │ ├── glyphicons-halflings-regular.eot │ ├── glyphicons-halflings-regular.ttf │ ├── glyphicons-halflings-regular.woff │ └── glyphicons-halflings-regular.woff2 │ ├── css │ ├── images │ │ ├── ui-icons_222222_256x240.png │ │ └── css-images-ui-icons_222222_256x240.png │ ├── reset.css │ ├── style.css │ └── jquery-ui.min.css │ ├── js │ ├── widgets │ │ ├── misc.js │ │ ├── weather.js │ │ ├── controls.js │ │ ├── date.js │ │ ├── form.js │ │ ├── user.js │ │ ├── info.js │ │ └── widget-root.js │ └── index.js │ ├── package.json │ ├── webpack.config.js │ └── index.html ├── jif-landing-page ├── img │ ├── bg.jpg │ ├── holi.png │ ├── jlogo.png │ ├── callout.jpg │ └── cakeshop.png ├── font-awesome │ ├── fonts │ │ ├── FontAwesome.otf │ │ ├── fontawesome-webfont.eot │ │ ├── fontawesome-webfont.ttf │ │ ├── fontawesome-webfont.woff │ │ └── fontawesome-webfont.woff2 │ ├── less │ │ ├── fixed-width.less │ │ ├── bordered-pulled.less │ │ ├── larger.less │ │ ├── list.less │ │ ├── font-awesome.less │ │ ├── core.less │ │ ├── stacked.less │ │ ├── rotated-flipped.less │ │ ├── path.less │ │ ├── animated.less │ │ └── mixins.less │ └── scss │ │ ├── _fixed-width.scss │ │ ├── _bordered-pulled.scss │ │ ├── _larger.scss │ │ ├── _list.scss │ │ ├── font-awesome.scss │ │ ├── _core.scss │ │ ├── _stacked.scss │ │ ├── _rotated-flipped.scss │ │ ├── _path.scss │ │ ├── _animated.scss │ │ └── _mixins.scss ├── fonts │ ├── glyphicons-halflings-regular.eot │ ├── glyphicons-halflings-regular.ttf │ ├── glyphicons-halflings-regular.woff │ └── glyphicons-halflings-regular.woff2 ├── LICENSE ├── README.md ├── css │ ├── prism.css │ └── stylesheet.css ├── index.html └── js │ └── prism.js ├── samples ├── cakeshop │ ├── fonts │ │ ├── roboto.woff │ │ ├── roboto.woff2 │ │ ├── DroidSans.ttf │ │ ├── jpmm-icons.eot │ │ ├── jpmm-icons.ttf │ │ ├── FontAwesome.otf │ │ ├── jpmm-icons.woff │ │ ├── DroidSans-Bold.ttf │ │ ├── celeste_regular.eot │ │ ├── celeste_regular.ttf │ │ ├── celeste_regular.woff │ │ ├── fontawesome-webfont.eot │ │ ├── fontawesome-webfont.ttf │ │ ├── fontawesome-webfont.woff │ │ ├── amplitude-bold-webfont.eot │ │ ├── amplitude-bold-webfont.ttf │ │ ├── amplitude-bold-webfont.woff │ │ ├── amplitude-light-webfont.eot │ │ ├── amplitude-light-webfont.ttf │ │ ├── fontawesome-webfont.woff2 │ │ ├── amplitude-light-webfont.woff │ │ ├── amplitude-medium-webfont.eot │ │ ├── amplitude-medium-webfont.ttf │ │ ├── amplitude-medium-webfont.woff │ │ ├── amplitude-regular-webfont.eot │ │ ├── amplitude-regular-webfont.ttf │ │ ├── amplitude-regular-webfont.woff │ │ ├── glyphicons-halflings-regular.eot │ │ ├── glyphicons-halflings-regular.ttf │ │ ├── glyphicons-halflings-regular.woff │ │ └── glyphicons-halflings-regular.woff2 │ ├── css │ │ ├── reset.css │ │ ├── index.html │ │ ├── style.css │ │ └── jquery-ui.min.css │ ├── js │ │ ├── widgets │ │ │ ├── misc.js │ │ │ ├── weather.js │ │ │ ├── controls.js │ │ │ ├── date.js │ │ │ ├── form.js │ │ │ ├── user.js │ │ │ ├── info.js │ │ │ └── widget-root.js │ │ └── index.js │ ├── package.json │ ├── webpack.config.js │ └── index.html └── widget-template.js ├── storage-available.js ├── LICENSE ├── package.json ├── dashboard-util.js ├── dashboard-template.js ├── widget-root.js ├── dashboard.css ├── README.md └── dashboard-core.js /.gitignore: -------------------------------------------------------------------------------- 1 | .DS_Store 2 | node_modules 3 | -------------------------------------------------------------------------------- /docs/demo/fonts/roboto.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jpmorganchase/jif-dashboard/HEAD/docs/demo/fonts/roboto.woff -------------------------------------------------------------------------------- /jif-landing-page/img/bg.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jpmorganchase/jif-dashboard/HEAD/jif-landing-page/img/bg.jpg -------------------------------------------------------------------------------- /docs/demo/fonts/DroidSans.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jpmorganchase/jif-dashboard/HEAD/docs/demo/fonts/DroidSans.ttf -------------------------------------------------------------------------------- /docs/demo/fonts/roboto.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jpmorganchase/jif-dashboard/HEAD/docs/demo/fonts/roboto.woff2 -------------------------------------------------------------------------------- /jif-landing-page/img/holi.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jpmorganchase/jif-dashboard/HEAD/jif-landing-page/img/holi.png -------------------------------------------------------------------------------- /jif-landing-page/img/jlogo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jpmorganchase/jif-dashboard/HEAD/jif-landing-page/img/jlogo.png -------------------------------------------------------------------------------- /docs/demo/fonts/FontAwesome.otf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jpmorganchase/jif-dashboard/HEAD/docs/demo/fonts/FontAwesome.otf -------------------------------------------------------------------------------- /jif-landing-page/img/callout.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jpmorganchase/jif-dashboard/HEAD/jif-landing-page/img/callout.jpg -------------------------------------------------------------------------------- /docs/demo/fonts/DroidSans-Bold.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jpmorganchase/jif-dashboard/HEAD/docs/demo/fonts/DroidSans-Bold.ttf -------------------------------------------------------------------------------- /docs/demo/fonts/celeste_regular.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jpmorganchase/jif-dashboard/HEAD/docs/demo/fonts/celeste_regular.eot -------------------------------------------------------------------------------- /docs/demo/fonts/celeste_regular.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jpmorganchase/jif-dashboard/HEAD/docs/demo/fonts/celeste_regular.ttf -------------------------------------------------------------------------------- /jif-landing-page/img/cakeshop.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jpmorganchase/jif-dashboard/HEAD/jif-landing-page/img/cakeshop.png -------------------------------------------------------------------------------- /samples/cakeshop/fonts/roboto.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jpmorganchase/jif-dashboard/HEAD/samples/cakeshop/fonts/roboto.woff -------------------------------------------------------------------------------- /samples/cakeshop/fonts/roboto.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jpmorganchase/jif-dashboard/HEAD/samples/cakeshop/fonts/roboto.woff2 -------------------------------------------------------------------------------- /docs/demo/fonts/celeste_regular.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jpmorganchase/jif-dashboard/HEAD/docs/demo/fonts/celeste_regular.woff -------------------------------------------------------------------------------- /samples/cakeshop/fonts/DroidSans.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jpmorganchase/jif-dashboard/HEAD/samples/cakeshop/fonts/DroidSans.ttf -------------------------------------------------------------------------------- /samples/cakeshop/fonts/jpmm-icons.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jpmorganchase/jif-dashboard/HEAD/samples/cakeshop/fonts/jpmm-icons.eot -------------------------------------------------------------------------------- /samples/cakeshop/fonts/jpmm-icons.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jpmorganchase/jif-dashboard/HEAD/samples/cakeshop/fonts/jpmm-icons.ttf -------------------------------------------------------------------------------- /docs/demo/fonts/fontawesome-webfont.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jpmorganchase/jif-dashboard/HEAD/docs/demo/fonts/fontawesome-webfont.eot -------------------------------------------------------------------------------- /docs/demo/fonts/fontawesome-webfont.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jpmorganchase/jif-dashboard/HEAD/docs/demo/fonts/fontawesome-webfont.ttf -------------------------------------------------------------------------------- /docs/demo/fonts/fontawesome-webfont.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jpmorganchase/jif-dashboard/HEAD/docs/demo/fonts/fontawesome-webfont.woff -------------------------------------------------------------------------------- /samples/cakeshop/fonts/FontAwesome.otf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jpmorganchase/jif-dashboard/HEAD/samples/cakeshop/fonts/FontAwesome.otf -------------------------------------------------------------------------------- /samples/cakeshop/fonts/jpmm-icons.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jpmorganchase/jif-dashboard/HEAD/samples/cakeshop/fonts/jpmm-icons.woff -------------------------------------------------------------------------------- /docs/demo/fonts/amplitude-bold-webfont.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jpmorganchase/jif-dashboard/HEAD/docs/demo/fonts/amplitude-bold-webfont.eot -------------------------------------------------------------------------------- /docs/demo/fonts/amplitude-bold-webfont.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jpmorganchase/jif-dashboard/HEAD/docs/demo/fonts/amplitude-bold-webfont.ttf -------------------------------------------------------------------------------- /docs/demo/fonts/fontawesome-webfont.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jpmorganchase/jif-dashboard/HEAD/docs/demo/fonts/fontawesome-webfont.woff2 -------------------------------------------------------------------------------- /samples/cakeshop/fonts/DroidSans-Bold.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jpmorganchase/jif-dashboard/HEAD/samples/cakeshop/fonts/DroidSans-Bold.ttf -------------------------------------------------------------------------------- /samples/cakeshop/fonts/celeste_regular.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jpmorganchase/jif-dashboard/HEAD/samples/cakeshop/fonts/celeste_regular.eot -------------------------------------------------------------------------------- /samples/cakeshop/fonts/celeste_regular.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jpmorganchase/jif-dashboard/HEAD/samples/cakeshop/fonts/celeste_regular.ttf -------------------------------------------------------------------------------- /docs/demo/fonts/amplitude-bold-webfont.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jpmorganchase/jif-dashboard/HEAD/docs/demo/fonts/amplitude-bold-webfont.woff -------------------------------------------------------------------------------- /docs/demo/fonts/amplitude-light-webfont.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jpmorganchase/jif-dashboard/HEAD/docs/demo/fonts/amplitude-light-webfont.eot -------------------------------------------------------------------------------- /docs/demo/fonts/amplitude-light-webfont.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jpmorganchase/jif-dashboard/HEAD/docs/demo/fonts/amplitude-light-webfont.ttf -------------------------------------------------------------------------------- /docs/demo/fonts/amplitude-light-webfont.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jpmorganchase/jif-dashboard/HEAD/docs/demo/fonts/amplitude-light-webfont.woff -------------------------------------------------------------------------------- /docs/demo/fonts/amplitude-medium-webfont.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jpmorganchase/jif-dashboard/HEAD/docs/demo/fonts/amplitude-medium-webfont.eot -------------------------------------------------------------------------------- /docs/demo/fonts/amplitude-medium-webfont.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jpmorganchase/jif-dashboard/HEAD/docs/demo/fonts/amplitude-medium-webfont.ttf -------------------------------------------------------------------------------- /docs/demo/fonts/amplitude-medium-webfont.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jpmorganchase/jif-dashboard/HEAD/docs/demo/fonts/amplitude-medium-webfont.woff -------------------------------------------------------------------------------- /docs/demo/fonts/amplitude-regular-webfont.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jpmorganchase/jif-dashboard/HEAD/docs/demo/fonts/amplitude-regular-webfont.eot -------------------------------------------------------------------------------- /docs/demo/fonts/amplitude-regular-webfont.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jpmorganchase/jif-dashboard/HEAD/docs/demo/fonts/amplitude-regular-webfont.ttf -------------------------------------------------------------------------------- /samples/cakeshop/fonts/celeste_regular.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jpmorganchase/jif-dashboard/HEAD/samples/cakeshop/fonts/celeste_regular.woff -------------------------------------------------------------------------------- /docs/demo/fonts/amplitude-regular-webfont.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jpmorganchase/jif-dashboard/HEAD/docs/demo/fonts/amplitude-regular-webfont.woff -------------------------------------------------------------------------------- /samples/cakeshop/fonts/fontawesome-webfont.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jpmorganchase/jif-dashboard/HEAD/samples/cakeshop/fonts/fontawesome-webfont.eot -------------------------------------------------------------------------------- /samples/cakeshop/fonts/fontawesome-webfont.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jpmorganchase/jif-dashboard/HEAD/samples/cakeshop/fonts/fontawesome-webfont.ttf -------------------------------------------------------------------------------- /samples/cakeshop/fonts/fontawesome-webfont.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jpmorganchase/jif-dashboard/HEAD/samples/cakeshop/fonts/fontawesome-webfont.woff -------------------------------------------------------------------------------- /docs/demo/css/images/ui-icons_222222_256x240.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jpmorganchase/jif-dashboard/HEAD/docs/demo/css/images/ui-icons_222222_256x240.png -------------------------------------------------------------------------------- /docs/demo/fonts/glyphicons-halflings-regular.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jpmorganchase/jif-dashboard/HEAD/docs/demo/fonts/glyphicons-halflings-regular.eot -------------------------------------------------------------------------------- /docs/demo/fonts/glyphicons-halflings-regular.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jpmorganchase/jif-dashboard/HEAD/docs/demo/fonts/glyphicons-halflings-regular.ttf -------------------------------------------------------------------------------- /docs/demo/fonts/glyphicons-halflings-regular.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jpmorganchase/jif-dashboard/HEAD/docs/demo/fonts/glyphicons-halflings-regular.woff -------------------------------------------------------------------------------- /docs/demo/fonts/glyphicons-halflings-regular.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jpmorganchase/jif-dashboard/HEAD/docs/demo/fonts/glyphicons-halflings-regular.woff2 -------------------------------------------------------------------------------- /samples/cakeshop/fonts/amplitude-bold-webfont.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jpmorganchase/jif-dashboard/HEAD/samples/cakeshop/fonts/amplitude-bold-webfont.eot -------------------------------------------------------------------------------- /samples/cakeshop/fonts/amplitude-bold-webfont.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jpmorganchase/jif-dashboard/HEAD/samples/cakeshop/fonts/amplitude-bold-webfont.ttf -------------------------------------------------------------------------------- /samples/cakeshop/fonts/amplitude-bold-webfont.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jpmorganchase/jif-dashboard/HEAD/samples/cakeshop/fonts/amplitude-bold-webfont.woff -------------------------------------------------------------------------------- /samples/cakeshop/fonts/amplitude-light-webfont.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jpmorganchase/jif-dashboard/HEAD/samples/cakeshop/fonts/amplitude-light-webfont.eot -------------------------------------------------------------------------------- /samples/cakeshop/fonts/amplitude-light-webfont.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jpmorganchase/jif-dashboard/HEAD/samples/cakeshop/fonts/amplitude-light-webfont.ttf -------------------------------------------------------------------------------- /samples/cakeshop/fonts/fontawesome-webfont.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jpmorganchase/jif-dashboard/HEAD/samples/cakeshop/fonts/fontawesome-webfont.woff2 -------------------------------------------------------------------------------- /jif-landing-page/font-awesome/fonts/FontAwesome.otf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jpmorganchase/jif-dashboard/HEAD/jif-landing-page/font-awesome/fonts/FontAwesome.otf -------------------------------------------------------------------------------- /samples/cakeshop/fonts/amplitude-light-webfont.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jpmorganchase/jif-dashboard/HEAD/samples/cakeshop/fonts/amplitude-light-webfont.woff -------------------------------------------------------------------------------- /samples/cakeshop/fonts/amplitude-medium-webfont.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jpmorganchase/jif-dashboard/HEAD/samples/cakeshop/fonts/amplitude-medium-webfont.eot -------------------------------------------------------------------------------- /samples/cakeshop/fonts/amplitude-medium-webfont.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jpmorganchase/jif-dashboard/HEAD/samples/cakeshop/fonts/amplitude-medium-webfont.ttf -------------------------------------------------------------------------------- /samples/cakeshop/fonts/amplitude-medium-webfont.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jpmorganchase/jif-dashboard/HEAD/samples/cakeshop/fonts/amplitude-medium-webfont.woff -------------------------------------------------------------------------------- /samples/cakeshop/fonts/amplitude-regular-webfont.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jpmorganchase/jif-dashboard/HEAD/samples/cakeshop/fonts/amplitude-regular-webfont.eot -------------------------------------------------------------------------------- /samples/cakeshop/fonts/amplitude-regular-webfont.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jpmorganchase/jif-dashboard/HEAD/samples/cakeshop/fonts/amplitude-regular-webfont.ttf -------------------------------------------------------------------------------- /jif-landing-page/fonts/glyphicons-halflings-regular.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jpmorganchase/jif-dashboard/HEAD/jif-landing-page/fonts/glyphicons-halflings-regular.eot -------------------------------------------------------------------------------- /jif-landing-page/fonts/glyphicons-halflings-regular.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jpmorganchase/jif-dashboard/HEAD/jif-landing-page/fonts/glyphicons-halflings-regular.ttf -------------------------------------------------------------------------------- /samples/cakeshop/fonts/amplitude-regular-webfont.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jpmorganchase/jif-dashboard/HEAD/samples/cakeshop/fonts/amplitude-regular-webfont.woff -------------------------------------------------------------------------------- /samples/cakeshop/fonts/glyphicons-halflings-regular.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jpmorganchase/jif-dashboard/HEAD/samples/cakeshop/fonts/glyphicons-halflings-regular.eot -------------------------------------------------------------------------------- /samples/cakeshop/fonts/glyphicons-halflings-regular.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jpmorganchase/jif-dashboard/HEAD/samples/cakeshop/fonts/glyphicons-halflings-regular.ttf -------------------------------------------------------------------------------- /jif-landing-page/fonts/glyphicons-halflings-regular.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jpmorganchase/jif-dashboard/HEAD/jif-landing-page/fonts/glyphicons-halflings-regular.woff -------------------------------------------------------------------------------- /jif-landing-page/fonts/glyphicons-halflings-regular.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jpmorganchase/jif-dashboard/HEAD/jif-landing-page/fonts/glyphicons-halflings-regular.woff2 -------------------------------------------------------------------------------- /samples/cakeshop/fonts/glyphicons-halflings-regular.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jpmorganchase/jif-dashboard/HEAD/samples/cakeshop/fonts/glyphicons-halflings-regular.woff -------------------------------------------------------------------------------- /samples/cakeshop/fonts/glyphicons-halflings-regular.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jpmorganchase/jif-dashboard/HEAD/samples/cakeshop/fonts/glyphicons-halflings-regular.woff2 -------------------------------------------------------------------------------- /docs/demo/css/images/css-images-ui-icons_222222_256x240.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jpmorganchase/jif-dashboard/HEAD/docs/demo/css/images/css-images-ui-icons_222222_256x240.png -------------------------------------------------------------------------------- /jif-landing-page/font-awesome/fonts/fontawesome-webfont.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jpmorganchase/jif-dashboard/HEAD/jif-landing-page/font-awesome/fonts/fontawesome-webfont.eot -------------------------------------------------------------------------------- /jif-landing-page/font-awesome/fonts/fontawesome-webfont.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jpmorganchase/jif-dashboard/HEAD/jif-landing-page/font-awesome/fonts/fontawesome-webfont.ttf -------------------------------------------------------------------------------- /jif-landing-page/font-awesome/fonts/fontawesome-webfont.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jpmorganchase/jif-dashboard/HEAD/jif-landing-page/font-awesome/fonts/fontawesome-webfont.woff -------------------------------------------------------------------------------- /jif-landing-page/font-awesome/fonts/fontawesome-webfont.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jpmorganchase/jif-dashboard/HEAD/jif-landing-page/font-awesome/fonts/fontawesome-webfont.woff2 -------------------------------------------------------------------------------- /jif-landing-page/font-awesome/less/fixed-width.less: -------------------------------------------------------------------------------- 1 | // Fixed Width Icons 2 | // ------------------------- 3 | .@{fa-css-prefix}-fw { 4 | width: (18em / 14); 5 | text-align: center; 6 | } 7 | -------------------------------------------------------------------------------- /jif-landing-page/font-awesome/scss/_fixed-width.scss: -------------------------------------------------------------------------------- 1 | // Fixed Width Icons 2 | // ------------------------- 3 | .#{$fa-css-prefix}-fw { 4 | width: (18em / 14); 5 | text-align: center; 6 | } 7 | -------------------------------------------------------------------------------- /storage-available.js: -------------------------------------------------------------------------------- 1 | // from mdn, lightly edited. 2 | 3 | export default (function storageAvailable() { 4 | try { 5 | var storage = window.localStorage; 6 | var x = '__storage_test__'; 7 | storage.setItem(x, x); 8 | storage.removeItem(x); 9 | return true; 10 | } 11 | catch(e) { 12 | return false; 13 | } 14 | }()); 15 | -------------------------------------------------------------------------------- /jif-landing-page/font-awesome/less/bordered-pulled.less: -------------------------------------------------------------------------------- 1 | // Bordered & Pulled 2 | // ------------------------- 3 | 4 | .@{fa-css-prefix}-border { 5 | padding: .2em .25em .15em; 6 | border: solid .08em @fa-border-color; 7 | border-radius: .1em; 8 | } 9 | 10 | .pull-right { float: right; } 11 | .pull-left { float: left; } 12 | 13 | .@{fa-css-prefix} { 14 | &.pull-left { margin-right: .3em; } 15 | &.pull-right { margin-left: .3em; } 16 | } 17 | -------------------------------------------------------------------------------- /jif-landing-page/font-awesome/scss/_bordered-pulled.scss: -------------------------------------------------------------------------------- 1 | // Bordered & Pulled 2 | // ------------------------- 3 | 4 | .#{$fa-css-prefix}-border { 5 | padding: .2em .25em .15em; 6 | border: solid .08em $fa-border-color; 7 | border-radius: .1em; 8 | } 9 | 10 | .pull-right { float: right; } 11 | .pull-left { float: left; } 12 | 13 | .#{$fa-css-prefix} { 14 | &.pull-left { margin-right: .3em; } 15 | &.pull-right { margin-left: .3em; } 16 | } 17 | -------------------------------------------------------------------------------- /jif-landing-page/font-awesome/less/larger.less: -------------------------------------------------------------------------------- 1 | // Icon Sizes 2 | // ------------------------- 3 | 4 | /* makes the font 33% larger relative to the icon container */ 5 | .@{fa-css-prefix}-lg { 6 | font-size: (4em / 3); 7 | line-height: (3em / 4); 8 | vertical-align: -15%; 9 | } 10 | .@{fa-css-prefix}-2x { font-size: 2em; } 11 | .@{fa-css-prefix}-3x { font-size: 3em; } 12 | .@{fa-css-prefix}-4x { font-size: 4em; } 13 | .@{fa-css-prefix}-5x { font-size: 5em; } 14 | -------------------------------------------------------------------------------- /jif-landing-page/font-awesome/scss/_larger.scss: -------------------------------------------------------------------------------- 1 | // Icon Sizes 2 | // ------------------------- 3 | 4 | /* makes the font 33% larger relative to the icon container */ 5 | .#{$fa-css-prefix}-lg { 6 | font-size: (4em / 3); 7 | line-height: (3em / 4); 8 | vertical-align: -15%; 9 | } 10 | .#{$fa-css-prefix}-2x { font-size: 2em; } 11 | .#{$fa-css-prefix}-3x { font-size: 3em; } 12 | .#{$fa-css-prefix}-4x { font-size: 4em; } 13 | .#{$fa-css-prefix}-5x { font-size: 5em; } 14 | -------------------------------------------------------------------------------- /jif-landing-page/font-awesome/less/list.less: -------------------------------------------------------------------------------- 1 | // List Icons 2 | // ------------------------- 3 | 4 | .@{fa-css-prefix}-ul { 5 | padding-left: 0; 6 | margin-left: @fa-li-width; 7 | list-style-type: none; 8 | > li { position: relative; } 9 | } 10 | .@{fa-css-prefix}-li { 11 | position: absolute; 12 | left: -@fa-li-width; 13 | width: @fa-li-width; 14 | top: (2em / 14); 15 | text-align: center; 16 | &.@{fa-css-prefix}-lg { 17 | left: (-@fa-li-width + (4em / 14)); 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /jif-landing-page/font-awesome/scss/_list.scss: -------------------------------------------------------------------------------- 1 | // List Icons 2 | // ------------------------- 3 | 4 | .#{$fa-css-prefix}-ul { 5 | padding-left: 0; 6 | margin-left: $fa-li-width; 7 | list-style-type: none; 8 | > li { position: relative; } 9 | } 10 | .#{$fa-css-prefix}-li { 11 | position: absolute; 12 | left: -$fa-li-width; 13 | width: $fa-li-width; 14 | top: (2em / 14); 15 | text-align: center; 16 | &.#{$fa-css-prefix}-lg { 17 | left: -$fa-li-width + (4em / 14); 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /jif-landing-page/font-awesome/scss/font-awesome.scss: -------------------------------------------------------------------------------- 1 | /*! 2 | * Font Awesome 4.3.0 by @davegandy - http://fontawesome.io - @fontawesome 3 | * License - http://fontawesome.io/license (Font: SIL OFL 1.1, CSS: MIT License) 4 | */ 5 | 6 | @import "variables"; 7 | @import "mixins"; 8 | @import "path"; 9 | @import "core"; 10 | @import "larger"; 11 | @import "fixed-width"; 12 | @import "list"; 13 | @import "bordered-pulled"; 14 | @import "animated"; 15 | @import "rotated-flipped"; 16 | @import "stacked"; 17 | @import "icons"; 18 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | 2 | Licensed under the Apache License, Version 2.0 (the "License"); 3 | you may not use this software except in compliance with the License. 4 | You may obtain a copy of the License at 5 | 6 | http://www.apache.org/licenses/LICENSE-2.0 7 | 8 | Unless required by applicable law or agreed to in writing, software 9 | distributed under the License is distributed on an "AS IS" BASIS, 10 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 11 | See the License for the specific language governing permissions and 12 | limitations under the License. 13 | -------------------------------------------------------------------------------- /jif-landing-page/font-awesome/less/font-awesome.less: -------------------------------------------------------------------------------- 1 | /*! 2 | * Font Awesome 4.3.0 by @davegandy - http://fontawesome.io - @fontawesome 3 | * License - http://fontawesome.io/license (Font: SIL OFL 1.1, CSS: MIT License) 4 | */ 5 | 6 | @import "variables.less"; 7 | @import "mixins.less"; 8 | @import "path.less"; 9 | @import "core.less"; 10 | @import "larger.less"; 11 | @import "fixed-width.less"; 12 | @import "list.less"; 13 | @import "bordered-pulled.less"; 14 | @import "animated.less"; 15 | @import "rotated-flipped.less"; 16 | @import "stacked.less"; 17 | @import "icons.less"; 18 | -------------------------------------------------------------------------------- /jif-landing-page/font-awesome/less/core.less: -------------------------------------------------------------------------------- 1 | // Base Class Definition 2 | // ------------------------- 3 | 4 | .@{fa-css-prefix} { 5 | display: inline-block; 6 | font: normal normal normal @fa-font-size-base/1 FontAwesome; // shortening font declaration 7 | font-size: inherit; // can't have font-size inherit on line above, so need to override 8 | text-rendering: auto; // optimizelegibility throws things off #1094 9 | -webkit-font-smoothing: antialiased; 10 | -moz-osx-font-smoothing: grayscale; 11 | transform: translate(0, 0); // ensures no half-pixel rendering in firefox 12 | 13 | } 14 | -------------------------------------------------------------------------------- /jif-landing-page/font-awesome/less/stacked.less: -------------------------------------------------------------------------------- 1 | // Stacked Icons 2 | // ------------------------- 3 | 4 | .@{fa-css-prefix}-stack { 5 | position: relative; 6 | display: inline-block; 7 | width: 2em; 8 | height: 2em; 9 | line-height: 2em; 10 | vertical-align: middle; 11 | } 12 | .@{fa-css-prefix}-stack-1x, .@{fa-css-prefix}-stack-2x { 13 | position: absolute; 14 | left: 0; 15 | width: 100%; 16 | text-align: center; 17 | } 18 | .@{fa-css-prefix}-stack-1x { line-height: inherit; } 19 | .@{fa-css-prefix}-stack-2x { font-size: 2em; } 20 | .@{fa-css-prefix}-inverse { color: @fa-inverse; } 21 | -------------------------------------------------------------------------------- /jif-landing-page/font-awesome/scss/_core.scss: -------------------------------------------------------------------------------- 1 | // Base Class Definition 2 | // ------------------------- 3 | 4 | .#{$fa-css-prefix} { 5 | display: inline-block; 6 | font: normal normal normal #{$fa-font-size-base}/1 FontAwesome; // shortening font declaration 7 | font-size: inherit; // can't have font-size inherit on line above, so need to override 8 | text-rendering: auto; // optimizelegibility throws things off #1094 9 | -webkit-font-smoothing: antialiased; 10 | -moz-osx-font-smoothing: grayscale; 11 | transform: translate(0, 0); // ensures no half-pixel rendering in firefox 12 | 13 | } 14 | -------------------------------------------------------------------------------- /jif-landing-page/font-awesome/scss/_stacked.scss: -------------------------------------------------------------------------------- 1 | // Stacked Icons 2 | // ------------------------- 3 | 4 | .#{$fa-css-prefix}-stack { 5 | position: relative; 6 | display: inline-block; 7 | width: 2em; 8 | height: 2em; 9 | line-height: 2em; 10 | vertical-align: middle; 11 | } 12 | .#{$fa-css-prefix}-stack-1x, .#{$fa-css-prefix}-stack-2x { 13 | position: absolute; 14 | left: 0; 15 | width: 100%; 16 | text-align: center; 17 | } 18 | .#{$fa-css-prefix}-stack-1x { line-height: inherit; } 19 | .#{$fa-css-prefix}-stack-2x { font-size: 2em; } 20 | .#{$fa-css-prefix}-inverse { color: $fa-inverse; } 21 | -------------------------------------------------------------------------------- /jif-landing-page/font-awesome/less/rotated-flipped.less: -------------------------------------------------------------------------------- 1 | // Rotated & Flipped Icons 2 | // ------------------------- 3 | 4 | .@{fa-css-prefix}-rotate-90 { .fa-icon-rotate(90deg, 1); } 5 | .@{fa-css-prefix}-rotate-180 { .fa-icon-rotate(180deg, 2); } 6 | .@{fa-css-prefix}-rotate-270 { .fa-icon-rotate(270deg, 3); } 7 | 8 | .@{fa-css-prefix}-flip-horizontal { .fa-icon-flip(-1, 1, 0); } 9 | .@{fa-css-prefix}-flip-vertical { .fa-icon-flip(1, -1, 2); } 10 | 11 | // Hook for IE8-9 12 | // ------------------------- 13 | 14 | :root .@{fa-css-prefix}-rotate-90, 15 | :root .@{fa-css-prefix}-rotate-180, 16 | :root .@{fa-css-prefix}-rotate-270, 17 | :root .@{fa-css-prefix}-flip-horizontal, 18 | :root .@{fa-css-prefix}-flip-vertical { 19 | filter: none; 20 | } 21 | -------------------------------------------------------------------------------- /docs/demo/css/reset.css: -------------------------------------------------------------------------------- 1 | html,body,div,span,applet,object,iframe,h1,h2,h3,h4,h5,h6,p,blockquote,pre,a,abbr,acronym,address,big,cite,code,del,dfn,em,img,ins,kbd,q,s,samp,small,strike,strong,sub,sup,tt,var,b,u,i,center,dl,dt,dd,ol,ul,li,fieldset,form,label,legend,table,caption,tbody,tfoot,thead,tr,th,td,article,aside,canvas,details,embed,figure,figcaption,footer,header,hgroup,menu,nav,output,ruby,section,summary,time,mark,audio,video{margin:0;padding:0;border:0;font-size:100%;font:inherit;vertical-align:baseline}article,aside,details,figcaption,figure,footer,header,hgroup,menu,nav,section{display:block}body{line-height:1}ol,ul{list-style:none}blockquote,q{quotes:none}blockquote:before,blockquote:after,q:before,q:after{content:'';content:none}table{border-collapse:collapse;border-spacing:0} 2 | -------------------------------------------------------------------------------- /samples/cakeshop/css/reset.css: -------------------------------------------------------------------------------- 1 | html,body,div,span,applet,object,iframe,h1,h2,h3,h4,h5,h6,p,blockquote,pre,a,abbr,acronym,address,big,cite,code,del,dfn,em,img,ins,kbd,q,s,samp,small,strike,strong,sub,sup,tt,var,b,u,i,center,dl,dt,dd,ol,ul,li,fieldset,form,label,legend,table,caption,tbody,tfoot,thead,tr,th,td,article,aside,canvas,details,embed,figure,figcaption,footer,header,hgroup,menu,nav,output,ruby,section,summary,time,mark,audio,video{margin:0;padding:0;border:0;font-size:100%;font:inherit;vertical-align:baseline}article,aside,details,figcaption,figure,footer,header,hgroup,menu,nav,section{display:block}body{line-height:1}ol,ul{list-style:none}blockquote,q{quotes:none}blockquote:before,blockquote:after,q:before,q:after{content:'';content:none}table{border-collapse:collapse;border-spacing:0} 2 | -------------------------------------------------------------------------------- /jif-landing-page/font-awesome/scss/_rotated-flipped.scss: -------------------------------------------------------------------------------- 1 | // Rotated & Flipped Icons 2 | // ------------------------- 3 | 4 | .#{$fa-css-prefix}-rotate-90 { @include fa-icon-rotate(90deg, 1); } 5 | .#{$fa-css-prefix}-rotate-180 { @include fa-icon-rotate(180deg, 2); } 6 | .#{$fa-css-prefix}-rotate-270 { @include fa-icon-rotate(270deg, 3); } 7 | 8 | .#{$fa-css-prefix}-flip-horizontal { @include fa-icon-flip(-1, 1, 0); } 9 | .#{$fa-css-prefix}-flip-vertical { @include fa-icon-flip(1, -1, 2); } 10 | 11 | // Hook for IE8-9 12 | // ------------------------- 13 | 14 | :root .#{$fa-css-prefix}-rotate-90, 15 | :root .#{$fa-css-prefix}-rotate-180, 16 | :root .#{$fa-css-prefix}-rotate-270, 17 | :root .#{$fa-css-prefix}-flip-horizontal, 18 | :root .#{$fa-css-prefix}-flip-vertical { 19 | filter: none; 20 | } 21 | -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "jif-dashboard", 3 | "version": "1.3.6", 4 | "description": "", 5 | "main": "dashboard-core.js", 6 | "scripts": { 7 | "test": "echo \"Error: no test specified\" && exit 1" 8 | }, 9 | "repository": { 10 | "type": "git", 11 | "url": "git+ssh://git@github.com/jpmorganchase/jif-dashboard.git" 12 | }, 13 | "author": "JPMorgan Chase ", 14 | "contributors":[ 15 | "Jasmine Feng", 16 | "Ilya Uts", 17 | "Felix Shnir" 18 | ], 19 | "license": "Apache-2.0", 20 | "bugs": { 21 | "url": "https://github.com/jpmorganchase/jif-dashboard/issues" 22 | }, 23 | "homepage": "https://github.com/jpmorganchase/jif-dashboard#readme", 24 | "dependencies": { 25 | "draggabilly": "^2.1.1", 26 | "packery": "^2.1.1", 27 | "underscore": "^1.8.3" 28 | } 29 | } 30 | -------------------------------------------------------------------------------- /docs/demo/js/widgets/misc.js: -------------------------------------------------------------------------------- 1 | module.exports = function(id) { 2 | var extended = { 3 | name: 'misc', 4 | title: 'Misc', 5 | size: 'large', 6 | widgetId: id, 7 | 8 | template: _.template('its empty'), 9 | 10 | render: function() { 11 | Dashboard.render.widget(this.name, this.shell.tpl); 12 | this.fetch(); 13 | 14 | $('#widget-' + this.shell.id).css({ 15 | 'height': '240px', 16 | 'margin-bottom': '10px', 17 | 'overflow-x': 'hidden', 18 | 'width': '100%' 19 | }).html( this.template()); 20 | 21 | 22 | this.postRender(); 23 | $(document).trigger("WidgetInternalEvent", ["widget|rendered|" + this.name]); 24 | } 25 | }; 26 | 27 | 28 | var widget = _.extend({}, widgetRoot, extended); 29 | 30 | // register presence with screen manager 31 | Dashboard.addWidget(widget); 32 | }; 33 | -------------------------------------------------------------------------------- /samples/cakeshop/js/widgets/misc.js: -------------------------------------------------------------------------------- 1 | module.exports = function(id) { 2 | var extended = { 3 | name: 'misc', 4 | title: 'Misc', 5 | size: 'large', 6 | widgetId: id, 7 | 8 | template: _.template('its empty'), 9 | 10 | render: function() { 11 | Dashboard.render.widget(this.name, this.shell.tpl); 12 | this.fetch(); 13 | 14 | $('#widget-' + this.shell.id).css({ 15 | 'height': '240px', 16 | 'margin-bottom': '10px', 17 | 'overflow-x': 'hidden', 18 | 'width': '100%' 19 | }).html( this.template()); 20 | 21 | 22 | this.postRender(); 23 | $(document).trigger("WidgetInternalEvent", ["widget|rendered|" + this.name]); 24 | } 25 | }; 26 | 27 | 28 | var widget = _.extend({}, widgetRoot, extended); 29 | 30 | // register presence with screen manager 31 | Dashboard.addWidget(widget); 32 | }; 33 | -------------------------------------------------------------------------------- /jif-landing-page/font-awesome/less/path.less: -------------------------------------------------------------------------------- 1 | /* FONT PATH 2 | * -------------------------- */ 3 | 4 | @font-face { 5 | font-family: 'FontAwesome'; 6 | src: url('@{fa-font-path}/fontawesome-webfont.eot?v=@{fa-version}'); 7 | src: url('@{fa-font-path}/fontawesome-webfont.eot?#iefix&v=@{fa-version}') format('embedded-opentype'), 8 | url('@{fa-font-path}/fontawesome-webfont.woff2?v=@{fa-version}') format('woff2'), 9 | url('@{fa-font-path}/fontawesome-webfont.woff?v=@{fa-version}') format('woff'), 10 | url('@{fa-font-path}/fontawesome-webfont.ttf?v=@{fa-version}') format('truetype'), 11 | url('@{fa-font-path}/fontawesome-webfont.svg?v=@{fa-version}#fontawesomeregular') format('svg'); 12 | // src: url('@{fa-font-path}/FontAwesome.otf') format('opentype'); // used when developing fonts 13 | font-weight: normal; 14 | font-style: normal; 15 | } 16 | -------------------------------------------------------------------------------- /jif-landing-page/font-awesome/scss/_path.scss: -------------------------------------------------------------------------------- 1 | /* FONT PATH 2 | * -------------------------- */ 3 | 4 | @font-face { 5 | font-family: 'FontAwesome'; 6 | src: url('#{$fa-font-path}/fontawesome-webfont.eot?v=#{$fa-version}'); 7 | src: url('#{$fa-font-path}/fontawesome-webfont.eot?#iefix&v=#{$fa-version}') format('embedded-opentype'), 8 | url('#{$fa-font-path}/fontawesome-webfont.woff2?v=#{$fa-version}') format('woff2'), 9 | url('#{$fa-font-path}/fontawesome-webfont.woff?v=#{$fa-version}') format('woff'), 10 | url('#{$fa-font-path}/fontawesome-webfont.ttf?v=#{$fa-version}') format('truetype'), 11 | url('#{$fa-font-path}/fontawesome-webfont.svg?v=#{$fa-version}#fontawesomeregular') format('svg'); 12 | // src: url('#{$fa-font-path}/FontAwesome.otf') format('opentype'); // used when developing fonts 13 | font-weight: normal; 14 | font-style: normal; 15 | } 16 | -------------------------------------------------------------------------------- /jif-landing-page/font-awesome/less/animated.less: -------------------------------------------------------------------------------- 1 | // Animated Icons 2 | // -------------------------- 3 | 4 | .@{fa-css-prefix}-spin { 5 | -webkit-animation: fa-spin 2s infinite linear; 6 | animation: fa-spin 2s infinite linear; 7 | } 8 | 9 | .@{fa-css-prefix}-pulse { 10 | -webkit-animation: fa-spin 1s infinite steps(8); 11 | animation: fa-spin 1s infinite steps(8); 12 | } 13 | 14 | @-webkit-keyframes fa-spin { 15 | 0% { 16 | -webkit-transform: rotate(0deg); 17 | transform: rotate(0deg); 18 | } 19 | 100% { 20 | -webkit-transform: rotate(359deg); 21 | transform: rotate(359deg); 22 | } 23 | } 24 | 25 | @keyframes fa-spin { 26 | 0% { 27 | -webkit-transform: rotate(0deg); 28 | transform: rotate(0deg); 29 | } 30 | 100% { 31 | -webkit-transform: rotate(359deg); 32 | transform: rotate(359deg); 33 | } 34 | } 35 | -------------------------------------------------------------------------------- /docs/demo/js/widgets/weather.js: -------------------------------------------------------------------------------- 1 | 2 | module.exports = function(id) { 3 | var extended = { 4 | title: 'Weather', 5 | size: 'third', 6 | widgetId: id, 7 | 8 | hideLink: true, 9 | 10 | template: _.template(''), 11 | 12 | render: function() { 13 | Dashboard.render.widget(this.name, this.shell.tpl); 14 | 15 | this.fetch(); 16 | 17 | $('#widget-' + this.shell.id).css({ 18 | 'height': '240px', 19 | 'margin-bottom': '10px', 20 | 'overflow-x': 'hidden', 21 | 'width': '100%' 22 | }).html( this.template() ); 23 | 24 | this.postRender(); 25 | $(document).trigger("WidgetInternalEvent", ["widget|rendered|" + this.name]); 26 | }, 27 | }; 28 | 29 | var widget = _.extend({}, widgetRoot, extended); 30 | 31 | // register presence with screen manager 32 | Dashboard.addWidget(widget); 33 | }; 34 | -------------------------------------------------------------------------------- /jif-landing-page/font-awesome/scss/_animated.scss: -------------------------------------------------------------------------------- 1 | // Spinning Icons 2 | // -------------------------- 3 | 4 | .#{$fa-css-prefix}-spin { 5 | -webkit-animation: fa-spin 2s infinite linear; 6 | animation: fa-spin 2s infinite linear; 7 | } 8 | 9 | .#{$fa-css-prefix}-pulse { 10 | -webkit-animation: fa-spin 1s infinite steps(8); 11 | animation: fa-spin 1s infinite steps(8); 12 | } 13 | 14 | @-webkit-keyframes fa-spin { 15 | 0% { 16 | -webkit-transform: rotate(0deg); 17 | transform: rotate(0deg); 18 | } 19 | 100% { 20 | -webkit-transform: rotate(359deg); 21 | transform: rotate(359deg); 22 | } 23 | } 24 | 25 | @keyframes fa-spin { 26 | 0% { 27 | -webkit-transform: rotate(0deg); 28 | transform: rotate(0deg); 29 | } 30 | 100% { 31 | -webkit-transform: rotate(359deg); 32 | transform: rotate(359deg); 33 | } 34 | } 35 | -------------------------------------------------------------------------------- /samples/cakeshop/js/widgets/weather.js: -------------------------------------------------------------------------------- 1 | 2 | module.exports = function(id) { 3 | var extended = { 4 | title: 'Weather', 5 | size: 'third', 6 | widgetId: id, 7 | 8 | hideLink: true, 9 | 10 | template: _.template(''), 11 | 12 | render: function() { 13 | Dashboard.render.widget(this.name, this.shell.tpl); 14 | 15 | this.fetch(); 16 | 17 | $('#widget-' + this.shell.id).css({ 18 | 'height': '240px', 19 | 'margin-bottom': '10px', 20 | 'overflow-x': 'hidden', 21 | 'width': '100%' 22 | }).html( this.template() ); 23 | 24 | this.postRender(); 25 | $(document).trigger("WidgetInternalEvent", ["widget|rendered|" + this.name]); 26 | }, 27 | }; 28 | 29 | var widget = _.extend({}, widgetRoot, extended); 30 | 31 | // register presence with screen manager 32 | Dashboard.addWidget(widget); 33 | }; 34 | -------------------------------------------------------------------------------- /jif-landing-page/font-awesome/less/mixins.less: -------------------------------------------------------------------------------- 1 | // Mixins 2 | // -------------------------- 3 | 4 | .fa-icon() { 5 | display: inline-block; 6 | font: normal normal normal @fa-font-size-base/1 FontAwesome; // shortening font declaration 7 | font-size: inherit; // can't have font-size inherit on line above, so need to override 8 | text-rendering: auto; // optimizelegibility throws things off #1094 9 | -webkit-font-smoothing: antialiased; 10 | -moz-osx-font-smoothing: grayscale; 11 | transform: translate(0, 0); // ensures no half-pixel rendering in firefox 12 | 13 | } 14 | 15 | .fa-icon-rotate(@degrees, @rotation) { 16 | filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=@rotation); 17 | -webkit-transform: rotate(@degrees); 18 | -ms-transform: rotate(@degrees); 19 | transform: rotate(@degrees); 20 | } 21 | 22 | .fa-icon-flip(@horiz, @vert, @rotation) { 23 | filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=@rotation, mirror=1); 24 | -webkit-transform: scale(@horiz, @vert); 25 | -ms-transform: scale(@horiz, @vert); 26 | transform: scale(@horiz, @vert); 27 | } 28 | -------------------------------------------------------------------------------- /jif-landing-page/font-awesome/scss/_mixins.scss: -------------------------------------------------------------------------------- 1 | // Mixins 2 | // -------------------------- 3 | 4 | @mixin fa-icon() { 5 | display: inline-block; 6 | font: normal normal normal #{$fa-font-size-base}/1 FontAwesome; // shortening font declaration 7 | font-size: inherit; // can't have font-size inherit on line above, so need to override 8 | text-rendering: auto; // optimizelegibility throws things off #1094 9 | -webkit-font-smoothing: antialiased; 10 | -moz-osx-font-smoothing: grayscale; 11 | transform: translate(0, 0); // ensures no half-pixel rendering in firefox 12 | 13 | } 14 | 15 | @mixin fa-icon-rotate($degrees, $rotation) { 16 | filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=#{$rotation}); 17 | -webkit-transform: rotate($degrees); 18 | -ms-transform: rotate($degrees); 19 | transform: rotate($degrees); 20 | } 21 | 22 | @mixin fa-icon-flip($horiz, $vert, $rotation) { 23 | filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=#{$rotation}); 24 | -webkit-transform: scale($horiz, $vert); 25 | -ms-transform: scale($horiz, $vert); 26 | transform: scale($horiz, $vert); 27 | } 28 | -------------------------------------------------------------------------------- /docs/demo/js/widgets/controls.js: -------------------------------------------------------------------------------- 1 | 2 | module.exports = function(id) { 3 | var extended = { 4 | title: 'Control Panel', 5 | size: 'third', 6 | widgetId: id, 7 | 8 | hideLink: true, 9 | 10 | template: _.template('
| Name | <%= name %> |
| Role | <%= role %> |
| ID | <%=id%> |
| Name | <%= name %> |
| Role | <%= role %> |
| ID | <%=id%> |
| App Name | <%= app %> |
| # of Users | <%= numUser %> |
| URL | <%= url %> |
| Description | <%=desc%> |
| App Name | <%= app %> |
| # of Users | <%= numUser %> |
| URL | <%= url %> |
| Description | <%=desc%> |
81 | 82 | 83 |
84 | 85 | 86 | 87 | -------------------------------------------------------------------------------- /dashboard.css: -------------------------------------------------------------------------------- 1 | /*@import url('https://code.jquery.com/ui/1.12.1/themes/base/jquery-ui.css'); 2 | @import url('https://maxcdn.bootstrapcdn.com/font-awesome/4.7.0/css/font-awesome.min.css'); 3 | @import url('https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css');*/ 4 | @import url('https://fonts.googleapis.com/css?family=Roboto+Condensed'); 5 | 6 | .panel { 7 | box-shadow: 0 2px 5px 0 rgba(0, 0, 0, 0.26); 8 | border-radius: 0 !important; 9 | position: relative; 10 | /*-webkit-transition: all .2s linear;*/ 11 | } 12 | 13 | .panel-close { 14 | -webkit-transform: scale3d(0, 0, 0); 15 | transform: scale3d(0, 0, 0); 16 | } 17 | 18 | .panel-body { 19 | position: relative; 20 | height: 250px; 21 | } 22 | 23 | .panel-heading { 24 | background: white !important; 25 | border-radius: 0; 26 | padding: 15px; 27 | border-bottom: 0 !important; 28 | } 29 | 30 | .panel-heading .panel-title { 31 | font-family: 'Roboto Condensed', "Helvetica Neue", Helvetica, Arial, sans-serif; 32 | text-transform: uppercase; 33 | font-weight: 600; 34 | font-size: 13px; 35 | color: #515d6e; 36 | 37 | width: 85%; 38 | text-overflow: ellipsis; 39 | white-space: nowrap; 40 | overflow: hidden; 41 | } 42 | 43 | .overlay { 44 | position: absolute; 45 | top: 0; 46 | left: 0; 47 | right: 0; 48 | bottom: 0; 49 | z-index: 1001; 50 | background: rgba(255, 255, 255, 0.75); 51 | text-align: center; 52 | } 53 | 54 | .overlay:before { 55 | content: ""; 56 | height: 100%; 57 | vertical-align: middle; 58 | width: 1px; 59 | display: inline-block; 60 | margin-left: -5px; 61 | } 62 | 63 | .overlay .overlay-content { 64 | display: inline-block; 65 | vertical-align: middle; 66 | } 67 | 68 | .overlay i { 69 | display: block; 70 | position: inline-block; 71 | vertical-align: middle; 72 | color: black; 73 | } 74 | 75 | .panel-action { 76 | list-style: none; 77 | display: inline-block; 78 | float: right; 79 | font-size: 13px; 80 | margin-top: -15px; 81 | } 82 | 83 | .panel-action li { 84 | display: inline-block; 85 | color: #515d6e; 86 | margin: 0 5px; 87 | cursor: pointer; 88 | } 89 | 90 | .is-dragging, .is-positioning-post-drag { 91 | z-index: 200; /* keep dragged item on top */ 92 | } 93 | 94 | .packery-drop-placeholder { 95 | z-index: 0; 96 | outline: 3px dashed #CCC; 97 | outline-offset: -15px; 98 | transition: transform 0.2s; 99 | } 100 | 101 | .ui-draggable-dragging { 102 | z-index: 2; 103 | } 104 | 105 | 106 | .ui-resizable-handle { 107 | right: 12px; 108 | z-index: 90; 109 | bottom: 17px; 110 | opacity: 0.1; 111 | } 112 | 113 | .ui-resizable-handle:hover { 114 | opacity: 1; 115 | } 116 | 117 | .widget-collapse { 118 | height: 45px !important; 119 | margin-bottom: 18px; 120 | } 121 | 122 | .back-panel-collapse { 123 | height: 45px !important; 124 | margin-bottom: 18px; 125 | box-shadow: 0 2px 5px 0 rgba(0, 0, 0, 0.26) !important; 126 | overflow: hidden; 127 | } 128 | -------------------------------------------------------------------------------- /docs/demo/js/index.js: -------------------------------------------------------------------------------- 1 | import 'bootstrap'; 2 | import 'd3'; 3 | import 'jquery-ui'; 4 | import moment from 'moment'; 5 | 6 | 7 | import 'jif-dashboard/dashboard.css'; 8 | 9 | import 'jif-dashboard/dashboard-core'; 10 | import 'jif-dashboard/dashboard-util'; 11 | import 'jif-dashboard/dashboard-template'; 12 | 13 | // import this first because it sets a global all the rest of the widgets need 14 | import './widgets/widget-root'; 15 | 16 | 17 | window.Tower = { 18 | ready: false, 19 | current: null, 20 | status: {}, 21 | 22 | // Tower Control becomes ready only after the first status is received from the server 23 | isReady: function() { 24 | Tower.ready = true; 25 | 26 | // let everyone listening in know 27 | Dashboard.Utils.emit('tower-control|ready|true'); 28 | 29 | return true; 30 | }, 31 | 32 | 33 | init: function() { 34 | //set options for the Dashboard 35 | Dashboard.setOptions({ 36 | 'appName': 'sample-dashboard' 37 | }); 38 | 39 | //initialize the Dashboard, set up widget container 40 | Dashboard.init() 41 | 42 | Dashboard.preregisterWidgets({ 43 | 'info': require('./widgets/info'), 44 | 'form': require('./widgets/form'), 45 | 'misc': require('./widgets/misc'), 46 | 'date': require('./widgets/date'), 47 | 'controls': require('./widgets/controls'), 48 | 'weather': require('./widgets/weather') 49 | }); 50 | 51 | //open first section - console 52 | Tower.section['console'](); 53 | }, 54 | 55 | //define the sections 56 | section: { 57 | 'console': function() { 58 | // data that the widgets will use 59 | var data = { 60 | 'numUser': 4, 61 | 'appName': 'sample app', 62 | 'url': 'hello.com', 63 | 'description': 'this is a description of the app.' 64 | } 65 | 66 | // the array of widgets that belong to the section, 67 | // these were preregistered in init() because they are unique 68 | var widgets = [ 69 | { widgetId: 'date' }, 70 | { widgetId: 'controls' }, 71 | { widgetId: 'weather' }, 72 | { widgetId: 'info' , data: data}, //data can be passed in 73 | { widgetId: 'form' }, 74 | { widgetId: 'misc' }, 75 | ]; 76 | 77 | // opens the section and pass in the widgets that it needs 78 | Dashboard.showSection('console', widgets); 79 | }, 80 | 81 | // a section using same widget template for multiple widgets 82 | 'users': function() { 83 | // define the data 84 | var userlist = { 85 | 'user1': { 86 | 'name' : 'Admin', 87 | 'role' : 'admin', 88 | 'id' : 123 89 | }, 90 | 'user2': { 91 | 'name' : 'Developer', 92 | 'role' : 'developer', 93 | 'id' : 456 94 | }, 95 | 'user3': { 96 | 'name' : 'Data Scientist', 97 | 'role' : 'data scientist', 98 | 'id' : 789 99 | }, 100 | 'user4': { 101 | 'name' : 'QA', 102 | 'role' : 'qa', 103 | 'id' : 101 104 | } 105 | } 106 | 107 | var widgets = []; 108 | // iterate over the data, creating a new widget for each item 109 | _.each(userlist, function(user, key) { 110 | var widget = {}; 111 | widget[key + '-user'] = require('./widgets/user.js'); 112 | Dashboard.preregisterWidgets(widget); 113 | 114 | widgets = widgets.concat([{ 115 | widgetId: key + '-user', 116 | data: user 117 | }]) 118 | }) 119 | 120 | Dashboard.showSection('users', widgets); 121 | } 122 | } 123 | }; 124 | 125 | 126 | 127 | $(function() { 128 | $(window).on('scroll', function(e) { 129 | if ($(window).scrollTop() > 50) { 130 | $('body').addClass('sticky'); 131 | } else { 132 | $('body').removeClass('sticky'); 133 | } 134 | }); 135 | 136 | // Resetting dashboard 137 | $('#reset').on('click', function() { 138 | Dashboard.reset(); 139 | }) 140 | 141 | // Navigation menu handler 142 | $('.tower-sidebar li').click(function(e) { 143 | var id = $(this).attr('id'); 144 | 145 | e.preventDefault(); 146 | 147 | Tower.current = id; 148 | 149 | $('.tower-sidebar li').removeClass('active'); 150 | $(this).addClass('active'); 151 | 152 | Tower.section[Tower.current](); 153 | 154 | $('.tower-page-title').html( $('', { html: $(this).find('.tower-sidebar-item').html() }) ); 155 | }); 156 | 157 | // ---------- INIT ----------- 158 | Tower.init(); 159 | 160 | // Setting 'Console' as first section 161 | $('.tower-sidebar li').first().click(); 162 | }); 163 | -------------------------------------------------------------------------------- /samples/cakeshop/js/index.js: -------------------------------------------------------------------------------- 1 | import 'bootstrap'; 2 | import 'd3'; 3 | import 'jquery-ui'; 4 | import moment from 'moment'; 5 | 6 | import 'dashboard-framework/dashboard-core'; 7 | import 'dashboard-framework/dashboard-util'; 8 | import 'dashboard-framework/dashboard-template'; 9 | 10 | // import this first because it sets a global all the rest of the widgets need 11 | import './widgets/widget-root'; 12 | 13 | window.Tower = { 14 | ready: false, 15 | current: null, 16 | status: {}, 17 | 18 | // Tower Control becomes ready only after the first status is received from the server 19 | isReady: function() { 20 | Tower.ready = true; 21 | 22 | // let everyone listening in know 23 | Dashboard.Utils.emit('tower-control|ready|true'); 24 | 25 | return true; 26 | }, 27 | 28 | 29 | init: function() { 30 | //set options for the Dashboard 31 | Dashboard.setOptions({ 32 | 'appName': 'sample-dashboard' 33 | }); 34 | 35 | //initialize the Dashboard, set up widget container 36 | Dashboard.init() 37 | 38 | Dashboard.preregisterWidgets({ 39 | 'info' : require('./widgets/info'), 40 | 'form' : require('./widgets/form'), 41 | 'misc' : require('./widgets/misc'), 42 | 'date' : require('./widgets/date'), 43 | 'controls' : require('./widgets/controls'), 44 | 'weather' : require('./widgets/weather') 45 | }); 46 | 47 | //open first section - console 48 | Tower.section['console'](); 49 | }, 50 | 51 | //define the sections 52 | section: { 53 | 'console': function() { 54 | // data that the widgets will use 55 | var data = { 56 | 'numUser': 4, 57 | 'appName': 'sample app', 58 | 'url': 'hello.com', 59 | 'description': 'this is a description of the app.' 60 | } 61 | 62 | // the array of widgets that belong to the section, 63 | // these were preregistered in init() because they are unique 64 | var widgets = [ 65 | { widgetId: 'date' }, 66 | { widgetId: 'controls' }, 67 | { widgetId: 'weather' }, 68 | { widgetId: 'info' , data: data}, //data can be passed in 69 | { widgetId: 'form' }, 70 | { widgetId: 'misc' }, 71 | ]; 72 | 73 | // opens the section and pass in the widgets that it needs 74 | Dashboard.showSection('console', widgets); 75 | }, 76 | 77 | // a section using same widget template for multiple widgets 78 | 'users': function() { 79 | 80 | // define the data 81 | var userlist = { 82 | 'user1': { 83 | 'name' : 'Admin', 84 | 'role' : 'admin', 85 | 'id' : 123 86 | }, 87 | 'user2': { 88 | 'name' : 'Developer', 89 | 'role' : 'developer', 90 | 'id' : 456 91 | }, 92 | 'user3': { 93 | 'name' : 'Data Scientist', 94 | 'role' : 'data scientist', 95 | 'id' : 789 96 | }, 97 | 'user4': { 98 | 'name' : 'QA', 99 | 'role' : 'qa', 100 | 'id' : 101 101 | } 102 | } 103 | 104 | var widgets = []; 105 | //iterate over the data, creating a new widget for each item 106 | _.each(userlist, function(user, key) { 107 | var widget = {}; 108 | widget[key + '-user'] = require('./widgets/user.js'); 109 | Dashboard.preregisterWidgets(widget); 110 | 111 | widgets = widgets.concat([{ 112 | widgetId: key + '-user', 113 | data: user 114 | }]) 115 | }) 116 | 117 | Dashboard.showSection('users', widgets); 118 | } 119 | }, 120 | 121 | 122 | debug: function(message) { 123 | var _ref; 124 | return typeof window !== 'undefined' && window !== null ? (_ref = window.console) !== null ? _ref.log(message) : void 0 : void 0; 125 | } 126 | }; 127 | 128 | 129 | 130 | $(function() { 131 | $(window).on('scroll', function(e) { 132 | if ($(window).scrollTop() > 50) { 133 | $('body').addClass('sticky'); 134 | } else { 135 | $('body').removeClass('sticky'); 136 | } 137 | }); 138 | 139 | // logo handler 140 | $("a.tower-logo").click(function(e) { 141 | e.preventDefault(); 142 | $("#console").click(); 143 | }); 144 | 145 | // Menu (burger) handler 146 | $('.tower-toggle-btn').on('click', function() { 147 | $('.tower-logo-container').toggleClass('tower-nav-min'); 148 | $('.tower-sidebar').toggleClass('tower-nav-min'); 149 | $('.tower-body-wrapper').toggleClass('tower-nav-min'); 150 | }); 151 | 152 | $('#reset').on('click', function() { 153 | Dashboard.reset(); 154 | }) 155 | 156 | // Navigation menu handler 157 | $('.tower-sidebar li').click(function(e) { 158 | var id = $(this).attr('id'); 159 | 160 | e.preventDefault(); 161 | 162 | Tower.current = id; 163 | 164 | $('.tower-sidebar li').removeClass('active'); 165 | $(this).addClass('active'); 166 | 167 | Tower.section[Tower.current](); 168 | 169 | $('.tower-page-title').html( $('', { html: $(this).find('.tower-sidebar-item').html() }) ); 170 | 171 | }); 172 | 173 | // ---------- INIT ----------- 174 | Tower.init(); 175 | 176 | // Setting 'Console' as first section 177 | $('.tower-sidebar li').first().click(); 178 | }); 179 | -------------------------------------------------------------------------------- /samples/cakeshop/css/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 |163 | 164 | 165 |
166 | 167 | 168 | 169 | -------------------------------------------------------------------------------- /jif-landing-page/css/stylesheet.css: -------------------------------------------------------------------------------- 1 | /*! 2 | * Start Bootstrap - Stylish Portfolio (http://startbootstrap.com/) 3 | * Copyright 2013-2016 Start Bootstrap 4 | * Licensed under MIT (https://github.com/BlackrockDigital/startbootstrap/blob/gh-pages/LICENSE) 5 | */ 6 | 7 | /* Global Styles */ 8 | 9 | html, 10 | body { 11 | width: 100%; 12 | height: 100%; 13 | } 14 | 15 | body { 16 | font-family: "Source Sans Pro","Helvetica Neue",Helvetica,Arial,sans-serif; 17 | } 18 | 19 | p { 20 | font-size: 20px; 21 | } 22 | 23 | hr { 24 | width: 100px; 25 | } 26 | 27 | .text-vertical-center { 28 | display: table-cell; 29 | text-align: center; 30 | vertical-align: middle; 31 | } 32 | 33 | .text-vertical-center h1 { 34 | margin: 0; 35 | padding: 0; 36 | font-size: 9.5em; 37 | font-weight: 600; 38 | } 39 | 40 | .text-center h1 { 41 | margin: 0; 42 | padding: 0; 43 | font-size: 4.5em; 44 | font-weight: 600; 45 | } 46 | 47 | .docs-container h2 { 48 | margin: 0; 49 | padding: 0; 50 | font-size: 3.5em; 51 | font-weight: 500; 52 | margin-bottom: 15px; 53 | } 54 | 55 | .info-section { 56 | display: table; 57 | width: 100%; 58 | height: 400px; 59 | color: #fff; 60 | /*background: url(../img/callout.jpg) no-repeat center center scroll;*/ 61 | -webkit-background-size: cover; 62 | -moz-background-size: cover; 63 | background-size: cover; 64 | -o-background-size: cover; 65 | padding-top: 25px; 66 | padding-bottom: 25px; 67 | } 68 | 69 | .info-section h1 { 70 | margin: 0; 71 | padding: 0; 72 | font-size: 4.5em; 73 | font-weight: 600; 74 | } 75 | 76 | /* Custom Button Styles */ 77 | 78 | .btn-dark { 79 | border-radius: 0; 80 | color: #fff; 81 | background-color: rgba(0,0,0,0.4); 82 | } 83 | 84 | .btn-dark:hover, 85 | .btn-dark:focus, 86 | .btn-dark:active { 87 | color: #fff; 88 | background-color: rgba(0,0,0,0.7); 89 | } 90 | 91 | .btn-light { 92 | border-radius: 0; 93 | color: #333; 94 | background-color: rgb(255,255,255); 95 | } 96 | 97 | .btn-light:hover, 98 | .btn-light:focus, 99 | .btn-light:active { 100 | color: #333; 101 | background-color: rgba(255,255,255,0.8); 102 | } 103 | 104 | /* Custom Horizontal Rule */ 105 | 106 | hr.small { 107 | max-width: 100px; 108 | } 109 | 110 | .toggle { 111 | margin: 5px 5px 0 0; 112 | } 113 | 114 | /* Header */ 115 | 116 | .header { 117 | display: table; 118 | position: relative; 119 | width: 100%; 120 | height: 100%; 121 | /*background: url(../img/bg.jpg) no-repeat center center scroll;*/ 122 | background-color: #1b435b; 123 | color: white; 124 | -webkit-background-size: cover; 125 | -moz-background-size: cover; 126 | background-size: cover; 127 | -o-background-size: cover; 128 | } 129 | 130 | /* About */ 131 | 132 | .about { 133 | padding: 50px 0; 134 | } 135 | 136 | /* Services */ 137 | 138 | .services { 139 | padding: 50px 0; 140 | } 141 | 142 | .service-item { 143 | margin-bottom: 30px; 144 | } 145 | 146 | /* Callout */ 147 | 148 | #quickstart { 149 | display: table; 150 | width: 100%; 151 | height: 400px; 152 | color: #fff; 153 | background-color: #7d6969; 154 | /*background: url(../img/callout.jpg) no-repeat center center scroll;*/ 155 | -webkit-background-size: cover; 156 | -moz-background-size: cover; 157 | background-size: cover; 158 | -o-background-size: cover; 159 | padding-top: 25px; 160 | padding-bottom: 25px; 161 | } 162 | 163 | /* Portfolio */ 164 | 165 | #portfolio { 166 | background-color: #c6ccc7; 167 | } 168 | 169 | .portfolio { 170 | padding: 50px 0; 171 | } 172 | 173 | .portfolio-item { 174 | margin-bottom: 30px; 175 | } 176 | 177 | .img-portfolio { 178 | margin: 0 auto; 179 | } 180 | 181 | .img-portfolio:hover { 182 | opacity: 0.8; 183 | } 184 | 185 | /* Call to Action */ 186 | 187 | .call-to-action { 188 | padding: 50px 0; 189 | } 190 | 191 | .call-to-action .btn { 192 | margin: 10px; 193 | } 194 | 195 | /* Footer */ 196 | 197 | footer { 198 | padding: 100px 0; 199 | } 200 | 201 | #to-top { 202 | display: none; 203 | position: fixed; 204 | bottom: 5px; 205 | right: 5px; 206 | border-radius: 25px; 207 | } 208 | 209 | /* Code blocks */ 210 | pre { 211 | width: 100%; 212 | } 213 | 214 | code[class*="language-"], pre[class*="language-"] { 215 | tab-size: 1; 216 | } 217 | 218 | .center-code { 219 | margin: 0px 28%; 220 | } 221 | 222 | #getting-started { 223 | display: table; 224 | width: 100%; 225 | height: 400px; 226 | color: #fff; 227 | background: url(../img/callout.jpg) no-repeat center center scroll; 228 | -webkit-background-size: cover; 229 | -moz-background-size: cover; 230 | background-size: cover; 231 | -o-background-size: cover; 232 | padding-top: 25px; 233 | padding-bottom: 25px; 234 | } 235 | 236 | .docs-container { 237 | padding-left: 15%; 238 | padding-right: 15%; 239 | } 240 | 241 | .docs-container .center-code { 242 | margin: 0px 18%; 243 | } 244 | 245 | #docs-label { 246 | display: table; 247 | width: 100%; 248 | height: 200px; 249 | color: black; 250 | background-color: #fff; 251 | } 252 | 253 | .navbar-default { 254 | opacity: .5; 255 | transition: opacity .3s ease; 256 | } 257 | 258 | .navbar-default:hover { 259 | opacity: .8; 260 | transition: opacity .3s ease; 261 | } 262 | 263 | .navbar-inverse { 264 | background-color: #321b0f; 265 | } 266 | 267 | p code { 268 | background-color: rgba(249, 242, 244, 0.64); 269 | } 270 | #html-docs { 271 | background-color: #9898ce 272 | } 273 | 274 | #widget { 275 | background-color: #b7475b; 276 | } 277 | 278 | #section-docs { 279 | background-color: #8c9e87; 280 | } 281 | 282 | #options { 283 | background-color: #e8aeae; 284 | } 285 | 286 | #utils { 287 | background-color: #479889; 288 | } 289 | 290 | #links a { 291 | color: white; 292 | } 293 | 294 | .logo { 295 | height: 50px; 296 | } 297 | -------------------------------------------------------------------------------- /jif-landing-page/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |It supports sections built out of widgets using a packery grid.
79 |It's easy to get started with JIF through npm.
91 |Add dashboard-framework to your project's package.json file:
94 |
95 | "dependencies": {
96 | ...
97 | "jif-dashboard": "^1.0.0",
98 | ...
99 | }
100 |
101 | Then import or require the JIF Dashboard files. For example, in index.js,
105 |
106 | import 'jif-dashboard/dashboard-core'
107 | import 'jif-dashboard/dashboard-util'
108 | import 'jif-dashboard/dashboard-template'
109 |
110 |
125 |
130 |