Merge pull request #608 from node-red/build2
Add build process to grunt
3
.gitignore
vendored
@ -8,4 +8,5 @@ nodes/node-red-nodes/
|
|||||||
/coverage
|
/coverage
|
||||||
.config.json
|
.config.json
|
||||||
.sessions.json
|
.sessions.json
|
||||||
|
public
|
||||||
|
.dist
|
||||||
|
@ -3,7 +3,6 @@ before_install:
|
|||||||
- npm install -g npm@~1.4.18
|
- npm install -g npm@~1.4.18
|
||||||
node_js:
|
node_js:
|
||||||
- "0.10"
|
- "0.10"
|
||||||
- "0.8"
|
|
||||||
script:
|
script:
|
||||||
- istanbul cover ./node_modules/.bin/grunt --report lcovonly && istanbul report text && ( cat coverage/lcov.info | ./node_modules/coveralls/bin/coveralls.js || true ) && rm -rf coverage
|
- istanbul cover ./node_modules/.bin/grunt --report lcovonly && istanbul report text && ( cat coverage/lcov.info | ./node_modules/coveralls/bin/coveralls.js || true ) && rm -rf coverage
|
||||||
before_script:
|
before_script:
|
||||||
|
329
Gruntfile.js
@ -1,5 +1,5 @@
|
|||||||
/**
|
/**
|
||||||
* Copyright 2013, 2014 IBM Corp.
|
* Copyright 2013, 2015 IBM Corp.
|
||||||
*
|
*
|
||||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
* you may not use this file except in compliance with the License.
|
* you may not use this file except in compliance with the License.
|
||||||
@ -14,82 +14,279 @@
|
|||||||
* limitations under the License.
|
* limitations under the License.
|
||||||
**/
|
**/
|
||||||
|
|
||||||
|
var path = require("path");
|
||||||
|
|
||||||
module.exports = function(grunt) {
|
module.exports = function(grunt) {
|
||||||
|
|
||||||
// Project configuration.
|
|
||||||
grunt.initConfig({
|
grunt.initConfig({
|
||||||
pkg: grunt.file.readJSON('package.json'),
|
pkg: grunt.file.readJSON('package.json'),
|
||||||
simplemocha: {
|
paths: {
|
||||||
options: {
|
dist: ".dist"
|
||||||
globals: ['expect'],
|
},
|
||||||
timeout: 3000,
|
simplemocha: {
|
||||||
ignoreLeaks: false,
|
options: {
|
||||||
ui: 'bdd',
|
globals: ['expect'],
|
||||||
reporter: 'spec'
|
timeout: 3000,
|
||||||
},
|
ignoreLeaks: false,
|
||||||
all: { src: ['test/**/*_spec.js'] },
|
ui: 'bdd',
|
||||||
core: { src: ["test/_spec.js","test/red/**/*_spec.js"]},
|
reporter: 'spec'
|
||||||
nodes: { src: ["test/nodes/**/*_spec.js"]}
|
|
||||||
},
|
},
|
||||||
jshint: {
|
all: { src: ['test/**/*_spec.js'] },
|
||||||
options: {
|
core: { src: ["test/_spec.js","test/red/**/*_spec.js"]},
|
||||||
// http://www.jshint.com/docs/options/
|
nodes: { src: ["test/nodes/**/*_spec.js"]}
|
||||||
"asi": true, // allow missing semicolons
|
},
|
||||||
"curly": true, // require braces
|
jshint: {
|
||||||
"eqnull": true, // ignore ==null
|
options: {
|
||||||
"forin": true, // require property filtering in "for in" loops
|
// http://www.jshint.com/docs/options/
|
||||||
"immed": true, // require immediate functions to be wrapped in ( )
|
"asi": true, // allow missing semicolons
|
||||||
"nonbsp": true, // warn on unexpected whitespace breaking chars
|
"curly": true, // require braces
|
||||||
//"strict": true, // commented out for now as it causes 100s of warnings, but want to get there eventually
|
"eqnull": true, // ignore ==null
|
||||||
"loopfunc": true, // allow functions to be defined in loops
|
"forin": true, // require property filtering in "for in" loops
|
||||||
"sub": true // don't warn that foo['bar'] should be written as foo.bar
|
"immed": true, // require immediate functions to be wrapped in ( )
|
||||||
},
|
"nonbsp": true, // warn on unexpected whitespace breaking chars
|
||||||
all: [
|
//"strict": true, // commented out for now as it causes 100s of warnings, but want to get there eventually
|
||||||
'Gruntfile.js',
|
"loopfunc": true, // allow functions to be defined in loops
|
||||||
'red.js',
|
"sub": true // don't warn that foo['bar'] should be written as foo.bar
|
||||||
'red/**/*.js',
|
},
|
||||||
'nodes/**/*.js',
|
all: [
|
||||||
'public/red/**/*.js'
|
'Gruntfile.js',
|
||||||
],
|
'red.js',
|
||||||
|
'red/**/*.js',
|
||||||
core: {
|
'nodes/**/*.js',
|
||||||
files: {
|
'editor/js/**/*.js'
|
||||||
src: [
|
],
|
||||||
'Gruntfile.js',
|
|
||||||
'red.js',
|
core: {
|
||||||
'red/**/*.js'
|
files: {
|
||||||
]
|
src: [
|
||||||
}
|
'Gruntfile.js',
|
||||||
},
|
'red.js',
|
||||||
nodes: {
|
'red/**/*.js'
|
||||||
files: {
|
]
|
||||||
src: [ 'nodes/**/*.js' ]
|
}
|
||||||
}
|
},
|
||||||
},
|
nodes: {
|
||||||
editor: {
|
files: {
|
||||||
files: {
|
src: [ 'nodes/**/*.js' ]
|
||||||
src: [ 'public/red/**/*.js' ]
|
}
|
||||||
}
|
},
|
||||||
},
|
editor: {
|
||||||
tests: {
|
files: {
|
||||||
files: {
|
src: [ 'editor/js/**/*.js' ]
|
||||||
src: ['test/**/*.js']
|
}
|
||||||
},
|
},
|
||||||
options: {
|
tests: {
|
||||||
"expr": true
|
files: {
|
||||||
}
|
src: ['test/**/*.js']
|
||||||
|
},
|
||||||
|
options: {
|
||||||
|
"expr": true
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
},
|
||||||
|
concat: {
|
||||||
|
options: {
|
||||||
|
separator: ";",
|
||||||
|
},
|
||||||
|
build: {
|
||||||
|
src: [
|
||||||
|
// Ensure editor source files are concatenated in
|
||||||
|
// the right order
|
||||||
|
"editor/js/main.js",
|
||||||
|
"editor/js/settings.js",
|
||||||
|
"editor/js/user.js",
|
||||||
|
"editor/js/comms.js",
|
||||||
|
"editor/js/ui/state.js",
|
||||||
|
"editor/js/nodes.js",
|
||||||
|
"editor/js/history.js",
|
||||||
|
"editor/js/validators.js",
|
||||||
|
"editor/js/ui/deploy.js",
|
||||||
|
"editor/js/ui/menu.js",
|
||||||
|
"editor/js/ui/keyboard.js",
|
||||||
|
"editor/js/ui/tabs.js",
|
||||||
|
"editor/js/ui/workspaces.js",
|
||||||
|
"editor/js/ui/view.js",
|
||||||
|
"editor/js/ui/sidebar.js",
|
||||||
|
"editor/js/ui/palette.js",
|
||||||
|
"editor/js/ui/tab-info.js",
|
||||||
|
"editor/js/ui/tab-config.js",
|
||||||
|
"editor/js/ui/editor.js",
|
||||||
|
"editor/js/ui/clipboard.js",
|
||||||
|
"editor/js/ui/library.js",
|
||||||
|
"editor/js/ui/notifications.js",
|
||||||
|
"editor/js/ui/subflow.js",
|
||||||
|
"editor/js/ui/touch/radialMenu.js"
|
||||||
|
],
|
||||||
|
dest: "public/red/red.js"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
uglify: {
|
||||||
|
build: {
|
||||||
|
files: {
|
||||||
|
'public/red/red.min.js': 'public/red/red.js'
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
sass: {
|
||||||
|
build: {
|
||||||
|
options: {
|
||||||
|
outputStyle: 'compressed'
|
||||||
|
},
|
||||||
|
files: [{
|
||||||
|
dest: 'public/red/style.min.css',
|
||||||
|
src: 'editor/sass/style.scss'
|
||||||
|
}]
|
||||||
|
}
|
||||||
|
},
|
||||||
|
clean: {
|
||||||
|
build: {
|
||||||
|
src: [
|
||||||
|
"public/red",
|
||||||
|
"public/index.html",
|
||||||
|
"public/favicon.ico",
|
||||||
|
"public/icons",
|
||||||
|
"public/vendor"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
release: {
|
||||||
|
src: [
|
||||||
|
'<%= paths.dist %>'
|
||||||
|
]
|
||||||
|
}
|
||||||
|
},
|
||||||
|
watch: {
|
||||||
|
js: {
|
||||||
|
files: [
|
||||||
|
'editor/js/**/*.js'
|
||||||
|
],
|
||||||
|
tasks: ['concat','uglify']
|
||||||
|
},
|
||||||
|
sass: {
|
||||||
|
files: [
|
||||||
|
'editor/sass/**/*.scss'
|
||||||
|
],
|
||||||
|
tasks: ['sass']
|
||||||
|
}
|
||||||
|
},
|
||||||
|
|
||||||
|
nodemon: {
|
||||||
|
/* uses .nodemonignore */
|
||||||
|
dev: {
|
||||||
|
script: 'red.js',
|
||||||
|
options: {
|
||||||
|
args:['-v'],
|
||||||
|
ext: 'js,html'
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
|
||||||
|
concurrent: {
|
||||||
|
dev: {
|
||||||
|
tasks: ['nodemon', 'watch'],
|
||||||
|
options: {
|
||||||
|
logConcurrentOutput: true
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
|
||||||
|
copy: {
|
||||||
|
build: {
|
||||||
|
files:[{
|
||||||
|
cwd: 'editor/images',
|
||||||
|
src: '**',
|
||||||
|
expand: true,
|
||||||
|
dest: 'public/red/images/'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
cwd: 'editor/vendor',
|
||||||
|
src: '**',
|
||||||
|
expand: true,
|
||||||
|
dest: 'public/vendor/'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
cwd: 'editor/icons',
|
||||||
|
src: '**',
|
||||||
|
expand: true,
|
||||||
|
dest: 'public/icons/'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
expand: true,
|
||||||
|
src: ['editor/index.html','editor/favicon.ico'],
|
||||||
|
dest: 'public/',
|
||||||
|
flatten: true
|
||||||
|
}]
|
||||||
|
},
|
||||||
|
release: {
|
||||||
|
files: [{
|
||||||
|
expand: true,
|
||||||
|
src: [
|
||||||
|
'*.md',
|
||||||
|
'LICENSE',
|
||||||
|
'package.json',
|
||||||
|
'settings.js',
|
||||||
|
'red.js',
|
||||||
|
'lib/.gitignore',
|
||||||
|
'nodes/*.demo',
|
||||||
|
'nodes/core/**',
|
||||||
|
'red/**',
|
||||||
|
'public/**'
|
||||||
|
],
|
||||||
|
dest: path.resolve('<%= paths.dist %>/node-red-<%= pkg.version %>')
|
||||||
|
}]
|
||||||
|
}
|
||||||
|
},
|
||||||
|
|
||||||
|
compress: {
|
||||||
|
release: {
|
||||||
|
options: {
|
||||||
|
archive: '<%= paths.dist %>/node-red-<%= pkg.version %>.zip'
|
||||||
|
},
|
||||||
|
expand: true,
|
||||||
|
cwd: '<%= paths.dist %>/',
|
||||||
|
src: ['node-red-<%= pkg.version %>/**']
|
||||||
|
}
|
||||||
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
grunt.loadNpmTasks('grunt-simple-mocha');
|
grunt.loadNpmTasks('grunt-simple-mocha');
|
||||||
grunt.loadNpmTasks('grunt-contrib-jshint');
|
grunt.loadNpmTasks('grunt-contrib-jshint');
|
||||||
|
grunt.loadNpmTasks('grunt-contrib-concat');
|
||||||
|
grunt.loadNpmTasks('grunt-contrib-uglify');
|
||||||
|
grunt.loadNpmTasks('grunt-contrib-clean');
|
||||||
|
grunt.loadNpmTasks('grunt-contrib-watch');
|
||||||
|
grunt.loadNpmTasks('grunt-concurrent');
|
||||||
|
grunt.loadNpmTasks('grunt-sass');
|
||||||
|
grunt.loadNpmTasks('grunt-nodemon');
|
||||||
|
grunt.loadNpmTasks('grunt-contrib-compress');
|
||||||
|
grunt.loadNpmTasks('grunt-contrib-copy');
|
||||||
|
|
||||||
grunt.registerTask('default', ['test-core','test-editor','test-nodes']);
|
grunt.registerTask('default',
|
||||||
|
'Builds editor content then runs code style checks and unit tests on all components',
|
||||||
|
['build','test-core','test-editor','test-nodes']);
|
||||||
|
|
||||||
grunt.registerTask('test-core', ['jshint:core','simplemocha:core']);
|
grunt.registerTask('test-core',
|
||||||
grunt.registerTask('test-editor', ['jshint:editor']);
|
'Runs code style check and unit tests on core runtime code',
|
||||||
grunt.registerTask('test-nodes', ['simplemocha:nodes']);
|
['jshint:core','simplemocha:core']);
|
||||||
|
|
||||||
|
grunt.registerTask('test-editor',
|
||||||
|
'Runs code style check on editor code',
|
||||||
|
['jshint:editor']);
|
||||||
|
|
||||||
|
grunt.registerTask('test-nodes',
|
||||||
|
'Runs unit tests on core nodes',
|
||||||
|
['simplemocha:nodes']);
|
||||||
|
|
||||||
|
grunt.registerTask('build',
|
||||||
|
'Builds editor content',
|
||||||
|
['clean:build','concat:build','uglify:build','sass:build','copy:build']);
|
||||||
|
|
||||||
|
grunt.registerTask('dev',
|
||||||
|
'Developer mode: run node-red, watch for source changes and build/restart',
|
||||||
|
['build','concurrent:dev']);
|
||||||
|
|
||||||
|
grunt.registerTask('release',
|
||||||
|
'Create distribution zip file',
|
||||||
|
['build','clean:release','copy:release','compress:release']);
|
||||||
|
|
||||||
|
|
||||||
};
|
};
|
||||||
|
25
README.md
@ -25,6 +25,31 @@ More documentation can be found [here](http://nodered.org/docs).
|
|||||||
For further help, or general discussion, please use the
|
For further help, or general discussion, please use the
|
||||||
[mailing list](https://groups.google.com/forum/#!forum/node-red).
|
[mailing list](https://groups.google.com/forum/#!forum/node-red).
|
||||||
|
|
||||||
|
## Developers
|
||||||
|
|
||||||
|
If you want to run the latest code from git, here's how to get started:
|
||||||
|
|
||||||
|
1. Install grunt, the build tool
|
||||||
|
|
||||||
|
npm install -g grunt-cli
|
||||||
|
|
||||||
|
2. Clone the code:
|
||||||
|
|
||||||
|
git clone git@github.com:node-red/node-red.git
|
||||||
|
cd node-red
|
||||||
|
|
||||||
|
3. Install the node-red dependencies
|
||||||
|
|
||||||
|
npm install
|
||||||
|
|
||||||
|
4. Build the code
|
||||||
|
|
||||||
|
grunt build
|
||||||
|
|
||||||
|
5. Run
|
||||||
|
|
||||||
|
node red.js
|
||||||
|
|
||||||
## Contributing
|
## Contributing
|
||||||
|
|
||||||
Before raising a pull-request, please read our
|
Before raising a pull-request, please read our
|
||||||
|
Before Width: | Height: | Size: 1.1 KiB After Width: | Height: | Size: 1.1 KiB |
Before Width: | Height: | Size: 308 B After Width: | Height: | Size: 308 B |
Before Width: | Height: | Size: 603 B After Width: | Height: | Size: 603 B |
Before Width: | Height: | Size: 393 B After Width: | Height: | Size: 393 B |
Before Width: | Height: | Size: 2.3 KiB After Width: | Height: | Size: 2.3 KiB |
Before Width: | Height: | Size: 609 B After Width: | Height: | Size: 609 B |
Before Width: | Height: | Size: 575 B After Width: | Height: | Size: 575 B |
Before Width: | Height: | Size: 601 B After Width: | Height: | Size: 601 B |
Before Width: | Height: | Size: 459 B After Width: | Height: | Size: 459 B |
Before Width: | Height: | Size: 218 B After Width: | Height: | Size: 218 B |
Before Width: | Height: | Size: 324 B After Width: | Height: | Size: 324 B |
Before Width: | Height: | Size: 378 B After Width: | Height: | Size: 378 B |
Before Width: | Height: | Size: 255 B After Width: | Height: | Size: 255 B |
Before Width: | Height: | Size: 457 B After Width: | Height: | Size: 457 B |
Before Width: | Height: | Size: 502 B After Width: | Height: | Size: 502 B |
Before Width: | Height: | Size: 449 B After Width: | Height: | Size: 449 B |
Before Width: | Height: | Size: 1.6 KiB After Width: | Height: | Size: 1.6 KiB |
Before Width: | Height: | Size: 639 B After Width: | Height: | Size: 639 B |
Before Width: | Height: | Size: 414 B After Width: | Height: | Size: 414 B |
Before Width: | Height: | Size: 671 B After Width: | Height: | Size: 671 B |
Before Width: | Height: | Size: 386 B After Width: | Height: | Size: 386 B |
Before Width: | Height: | Size: 386 B After Width: | Height: | Size: 386 B |
Before Width: | Height: | Size: 360 B After Width: | Height: | Size: 360 B |
Before Width: | Height: | Size: 736 B After Width: | Height: | Size: 736 B |
Before Width: | Height: | Size: 482 B After Width: | Height: | Size: 482 B |
Before Width: | Height: | Size: 273 B After Width: | Height: | Size: 273 B |
Before Width: | Height: | Size: 439 B After Width: | Height: | Size: 439 B |
Before Width: | Height: | Size: 592 B After Width: | Height: | Size: 592 B |
Before Width: | Height: | Size: 509 B After Width: | Height: | Size: 509 B |
Before Width: | Height: | Size: 488 B After Width: | Height: | Size: 488 B |
Before Width: | Height: | Size: 628 B After Width: | Height: | Size: 628 B |
Before Width: | Height: | Size: 258 B After Width: | Height: | Size: 258 B |
Before Width: | Height: | Size: 404 B After Width: | Height: | Size: 404 B |
Before Width: | Height: | Size: 591 B After Width: | Height: | Size: 591 B |
Before Width: | Height: | Size: 707 B After Width: | Height: | Size: 707 B |
Before Width: | Height: | Size: 291 B After Width: | Height: | Size: 291 B |
Before Width: | Height: | Size: 386 B After Width: | Height: | Size: 386 B |
Before Width: | Height: | Size: 289 B After Width: | Height: | Size: 289 B |
Before Width: | Height: | Size: 368 B After Width: | Height: | Size: 368 B |
Before Width: | Height: | Size: 290 B After Width: | Height: | Size: 290 B |
Before Width: | Height: | Size: 392 B After Width: | Height: | Size: 392 B |
Before Width: | Height: | Size: 223 B After Width: | Height: | Size: 223 B |
Before Width: | Height: | Size: 8.3 KiB After Width: | Height: | Size: 8.3 KiB |
Before Width: | Height: | Size: 1019 B After Width: | Height: | Size: 1019 B |
Before Width: | Height: | Size: 600 B After Width: | Height: | Size: 600 B |
@ -4,7 +4,6 @@
|
|||||||
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=0"/>
|
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=0"/>
|
||||||
<meta name="apple-mobile-web-app-capable" content="yes">
|
<meta name="apple-mobile-web-app-capable" content="yes">
|
||||||
<meta name="mobile-web-app-capable" content="yes">
|
<meta name="mobile-web-app-capable" content="yes">
|
||||||
|
|
||||||
<!--
|
<!--
|
||||||
Copyright 2013, 2015 IBM Corp.
|
Copyright 2013, 2015 IBM Corp.
|
||||||
|
|
||||||
@ -22,22 +21,22 @@
|
|||||||
-->
|
-->
|
||||||
<head>
|
<head>
|
||||||
<title>Node-RED</title>
|
<title>Node-RED</title>
|
||||||
<link href="bootstrap/css/bootstrap.min.css" rel="stylesheet" media="screen">
|
<link href="vendor/bootstrap/css/bootstrap.min.css" rel="stylesheet" media="screen">
|
||||||
<link href="jquery/css/smoothness/jquery-ui-1.10.3.custom.min.css" rel="stylesheet" media="screen">
|
<link href="vendor/jquery/css/smoothness/jquery-ui-1.10.3.custom.min.css" rel="stylesheet" media="screen">
|
||||||
<link rel="stylesheet" type="text/css" href="orion/built-editor.css"/>
|
<link rel="stylesheet" type="text/css" href="vendor/orion/built-editor.css"/>
|
||||||
<link rel="stylesheet" type="text/css" href="font-awesome/css/font-awesome.min.css"/>
|
<link rel="stylesheet" type="text/css" href="vendor/font-awesome/css/font-awesome.min.css"/>
|
||||||
<link rel="stylesheet" href="style.css">
|
<link rel="stylesheet" href="red/style.min.css">
|
||||||
</head>
|
</head>
|
||||||
<body spellcheck="false">
|
<body spellcheck="false">
|
||||||
<div id="header">
|
<div id="header">
|
||||||
<span class="logo"><img src="node-red.png"> <span>Node-RED</span></span>
|
<span class="logo"><img src="red/images/node-red.png"> <span>Node-RED</span></span>
|
||||||
<ul class="header-toolbar hide">
|
<ul class="header-toolbar hide">
|
||||||
<li><a id="btn-sidemenu" class="button" data-toggle="dropdown" href="#"><i class="fa fa-bars"></i></a></li>
|
<li><a id="btn-sidemenu" class="button" data-toggle="dropdown" href="#"><i class="fa fa-bars"></i></a></li>
|
||||||
<ul>
|
<ul>
|
||||||
</div>
|
</div>
|
||||||
<div id="main-container" class="sidebar-closed hide">
|
<div id="main-container" class="sidebar-closed hide">
|
||||||
<div id="palette">
|
<div id="palette">
|
||||||
<img src="spin.svg" class="palette-spinner hide"/>
|
<img src="red/images/spin.svg" class="palette-spinner hide"/>
|
||||||
<div id="palette-container" class="palette-scroll">
|
<div id="palette-container" class="palette-scroll">
|
||||||
</div>
|
</div>
|
||||||
<div id="palette-search">
|
<div id="palette-search">
|
||||||
@ -170,39 +169,16 @@
|
|||||||
</div>
|
</div>
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<script src="jquery/js/jquery-1.11.1.min.js"></script>
|
<script src="vendor/jquery/js/jquery-1.11.1.min.js"></script>
|
||||||
<script src="bootstrap/js/bootstrap.min.js"></script>
|
<script src="vendor/bootstrap/js/bootstrap.min.js"></script>
|
||||||
<script src="jquery/js/jquery-ui-1.10.3.custom.min.js"></script>
|
<script src="vendor/jquery/js/jquery-ui-1.10.3.custom.min.js"></script>
|
||||||
<script src="jquery/js/jquery.ui.touch-punch.min.js"></script>
|
<script src="vendor/jquery/js/jquery.ui.touch-punch.min.js"></script>
|
||||||
<script src="marked/marked.min.js"></script>
|
<script src="vendor/marked/marked.min.js"></script>
|
||||||
<script src="orion/built-editor.min.js"></script>
|
<script src="vendor/orion/built-editor.min.js"></script>
|
||||||
<script src="ace/ace.js"></script>
|
<script src="vendor/ace/ace.js"></script>
|
||||||
<script src="ace/ext-language_tools.js"></script>
|
<script src="vendor/ace/ext-language_tools.js"></script>
|
||||||
<script src="d3.v3.min.js"></script>
|
<script src="vendor/d3/d3.v3.min.js"></script>
|
||||||
<script src="red/main.js"></script>
|
<script src="red/red.min.js"></script>
|
||||||
<script src="red/settings.js"></script>
|
|
||||||
<script src="red/user.js"></script>
|
|
||||||
<script src="red/comms.js"></script>
|
|
||||||
<script src="red/ui/state.js"></script>
|
|
||||||
<script src="red/nodes.js"></script>
|
|
||||||
<script src="red/history.js"></script>
|
|
||||||
<script src="red/validators.js"></script>
|
|
||||||
<script src="red/ui/deploy.js"></script>
|
|
||||||
<script src="red/ui/menu.js"></script>
|
|
||||||
<script src="red/ui/keyboard.js"></script>
|
|
||||||
<script src="red/ui/tabs.js"></script>
|
|
||||||
<script src="red/ui/workspaces.js"></script>
|
|
||||||
<script src="red/ui/view.js"></script>
|
|
||||||
<script src="red/ui/sidebar.js"></script>
|
|
||||||
<script src="red/ui/palette.js"></script>
|
|
||||||
<script src="red/ui/tab-info.js"></script>
|
|
||||||
<script src="red/ui/tab-config.js"></script>
|
|
||||||
<script src="red/ui/editor.js"></script>
|
|
||||||
<script src="red/ui/clipboard.js"></script>
|
|
||||||
<script src="red/ui/library.js"></script>
|
|
||||||
<script src="red/ui/notifications.js"></script>
|
|
||||||
<script src="red/ui/subflow.js"></script>
|
|
||||||
<script src="red/ui/touch/radialMenu.js"></script>
|
|
||||||
|
|
||||||
</body>
|
</body>
|
||||||
</html>
|
</html>
|
@ -17,9 +17,9 @@
|
|||||||
RED.deploy = (function() {
|
RED.deploy = (function() {
|
||||||
|
|
||||||
var deploymentTypes = {
|
var deploymentTypes = {
|
||||||
"full":{img:"images/deploy-full-o.png"},
|
"full":{img:"red/images/deploy-full-o.png"},
|
||||||
"nodes":{img:"images/deploy-nodes-o.png"},
|
"nodes":{img:"red/images/deploy-nodes-o.png"},
|
||||||
"flows":{img:"images/deploy-flows-o.png"}
|
"flows":{img:"red/images/deploy-flows-o.png"}
|
||||||
}
|
}
|
||||||
|
|
||||||
var deploymentType = "full";
|
var deploymentType = "full";
|
||||||
@ -32,7 +32,7 @@ RED.deploy = (function() {
|
|||||||
function init() {
|
function init() {
|
||||||
|
|
||||||
var deployButton = $('<li><span class="deploy-button-group button-group">'+
|
var deployButton = $('<li><span class="deploy-button-group button-group">'+
|
||||||
'<a id="btn-deploy" class="action-deploy disabled" href="#"><img id="btn-icn-deploy" src="images/deploy-full-o.png"> <span>Deploy</span></a>'+
|
'<a id="btn-deploy" class="action-deploy disabled" href="#"><img id="btn-icn-deploy" src="red/images/deploy-full-o.png"> <span>Deploy</span></a>'+
|
||||||
'<a id="btn-deploy-options" data-toggle="dropdown" class="" href="#"><i class="fa fa-caret-down"></i></a>'+
|
'<a id="btn-deploy-options" data-toggle="dropdown" class="" href="#"><i class="fa fa-caret-down"></i></a>'+
|
||||||
'</span></li>').prependTo(".header-toolbar");
|
'</span></li>').prependTo(".header-toolbar");
|
||||||
|
|
||||||
@ -63,9 +63,9 @@ RED.deploy = (function() {
|
|||||||
|
|
||||||
RED.menu.init({id:"btn-deploy-options",
|
RED.menu.init({id:"btn-deploy-options",
|
||||||
options: [
|
options: [
|
||||||
{id:"btn-deploy-full",toggle:"deploy-type",icon:"images/deploy-full.png",label:"Full",sublabel:"Deploys everything in the workspace",onselect:function(s) { if(s){changeDeploymentType("full")}}},
|
{id:"btn-deploy-full",toggle:"deploy-type",icon:"red/images/deploy-full.png",label:"Full",sublabel:"Deploys everything in the workspace",onselect:function(s) { if(s){changeDeploymentType("full")}}},
|
||||||
{id:"btn-deploy-flow",toggle:"deploy-type",icon:"images/deploy-flows.png",label:"Modified Flows",sublabel:"Only deploys flows that contain changed nodes", onselect:function(s) {if(s){changeDeploymentType("flows")}}},
|
{id:"btn-deploy-flow",toggle:"deploy-type",icon:"red/images/deploy-flows.png",label:"Modified Flows",sublabel:"Only deploys flows that contain changed nodes", onselect:function(s) {if(s){changeDeploymentType("flows")}}},
|
||||||
{id:"btn-deploy-node",toggle:"deploy-type",icon:"images/deploy-nodes.png",label:"Modified Nodes",sublabel:"Only deploys nodes that have changed",onselect:function(s) { if(s){changeDeploymentType("nodes")}}}
|
{id:"btn-deploy-node",toggle:"deploy-type",icon:"red/images/deploy-nodes.png",label:"Modified Nodes",sublabel:"Only deploys nodes that have changed",onselect:function(s) { if(s){changeDeploymentType("nodes")}}}
|
||||||
]
|
]
|
||||||
});
|
});
|
||||||
|
|
@ -17,7 +17,7 @@
|
|||||||
body {
|
body {
|
||||||
font: 13px "Helvetica" !important;
|
font: 13px "Helvetica" !important;
|
||||||
padding-top: 100px;
|
padding-top: 100px;
|
||||||
background: url("pw_maze_white.png");
|
background: url("images/pw_maze_white.png");
|
||||||
}
|
}
|
||||||
|
|
||||||
#header {
|
#header {
|
||||||
@ -501,7 +501,7 @@ span.deploy-button-group.open > #btn-deploy.disabled + a {
|
|||||||
}
|
}
|
||||||
#sidebar-separator {
|
#sidebar-separator {
|
||||||
width: 15px;
|
width: 15px;
|
||||||
background: url(grip.png) no-repeat 50% 50%;
|
background: url(images/grip.png) no-repeat 50% 50%;
|
||||||
position: absolute;
|
position: absolute;
|
||||||
right: 316px; top: 5px; bottom:10px;
|
right: 316px; top: 5px; bottom:10px;
|
||||||
cursor: col-resize;
|
cursor: col-resize;
|
||||||
@ -902,7 +902,7 @@ div.node-info {
|
|||||||
|
|
||||||
|
|
||||||
.dropdown-menu>li.disabled>a:hover>[class^="icon-"] {
|
.dropdown-menu>li.disabled>a:hover>[class^="icon-"] {
|
||||||
background-image: url("bootstrap/img/glyphicons-halflings.png") !important;
|
background-image: url("vendor/bootstrap/img/glyphicons-halflings.png") !important;
|
||||||
}
|
}
|
||||||
/** Fix for unreachable dropdown menu **/
|
/** Fix for unreachable dropdown menu **/
|
||||||
.dropdown-menu {
|
.dropdown-menu {
|
||||||
@ -1189,7 +1189,7 @@ i.spinner {
|
|||||||
line-height: 14px;
|
line-height: 14px;
|
||||||
vertical-align: text-top;
|
vertical-align: text-top;
|
||||||
margin-top: 0px;
|
margin-top: 0px;
|
||||||
background: url(spin.svg) no-repeat 50% 50%;
|
background: url(images/spin.svg) no-repeat 50% 50%;
|
||||||
background-size: contain
|
background-size: contain
|
||||||
}
|
}
|
||||||
|
|