158 lines
4.5 KiB
Markdown
158 lines
4.5 KiB
Markdown
Core Javascript Frameworks for all projects
|
|
===========================================
|
|
|
|
This repository is not indented to be used directly but rather as part of a consuming application via 'git submodule'.
|
|
Such an example application can be found [here](https://github.com/mc007/xbox-app).
|
|
|
|
Important: this is work in progress, don't use it until I say so ;-)
|
|
|
|
|
|
# Installation
|
|
|
|
## Checkout
|
|
|
|
1. git clone --recursive https://github.com/mc007/xjs or :
|
|
2. git submodule update --init --recursive
|
|
|
|
## Update
|
|
|
|
1. git submodule foreach git pull origin master
|
|
|
|
# Contribute
|
|
|
|
git commit -m "updated my submodule"
|
|
git push
|
|
|
|
|
|
item.state = types.DEVICE_STATE.CONNECTING;
|
|
item.info = cInfo;
|
|
item._userStopped=null;
|
|
## Dependencies
|
|
|
|
This project requires the following other projects to run:
|
|
* dojo (is a sub module,forked, version = 1.10.3)
|
|
* dgrid (is a sub module,forked, version = 0.3)
|
|
* dojox (is a sub module,forked, version = 1.10.3)
|
|
* dijit (is a sub module,forked, version = 1.10.3)
|
|
* util (build-chain, is a sub module,forked, version = 1.10.3)
|
|
* dcl (is a sub module, https://github.com/uhop/dcl.git)
|
|
* requirejs (is a sub module, https://github.com/jrburke/requirejs.git)
|
|
* requirejs-domReady
|
|
* requirejs-dplugins
|
|
* requirejs-test
|
|
* [xdojo](https://github.com/mc007/xdojo) for abstracting dcl/delite in delite and legacy dojo projects or vice versa
|
|
|
|
## Testing
|
|
|
|
Is done via "intern". The selenium server must be started before :
|
|
``` bash
|
|
java -jar /usr/local/lib/node_modules/selenium-server-standalone-jar/jar/selenium-server-standalone-2.43.1.jar -port 4444 -Dwebdriver.chrome.driver=chromedriver
|
|
```
|
|
|
|
|
|
## SDK
|
|
|
|
|
|
[Guidelines] (GUIDELINES.md)
|
|
|
|
## Package Overview
|
|
|
|
**davinci** : Old code of IBM's "Maqetta" project : to be removed soon!
|
|
|
|
**xfile** : The file - manager widget, needs "xide".
|
|
|
|
**xide** : The IDEs foundation framework. This package serves the the infrastructure for all xjs based applications.
|
|
|
|
**xblox** : Library to render and execute a visual programming language. This needs "xide", "xlog", "davinci", "system", "orion", "preview" and "dcl". This library can be used server and client side. Each "block" has an implementation to be rendered by "xide" (block fields,...). Please ignore this component for now!
|
|
|
|
**xstyle** Library to deal with CSS and Dom-Style manipulation.
|
|
|
|
**xlog** Library about logging, works server and client side. The library depends on "xide" and "dgrid" and contains custom views and widgets.
|
|
|
|
**xwire** Library to bind data, events and widget properties all together.
|
|
|
|
**orion** Old Editor library, parses CSS/Javascript and others. To be removed!
|
|
|
|
**system** Old library, to be removed.
|
|
|
|
**preview** Old library, to be removed.
|
|
|
|
|
|
## Build
|
|
|
|
``` bash
|
|
cd src
|
|
sh buildstandalone.sh
|
|
```
|
|
|
|
This will create single layer file which contains all Dojo based in src/xfile/dojo/xbox.js!
|
|
|
|
## Build layers
|
|
|
|
For development speed, we did pre-compile some Dojo layers. By default 'dojox' and 'dijit' is pre-compiled. You can switch to normal in src/lib/xbox/run-release-debug.js !
|
|
|
|
``` bash
|
|
cd src
|
|
sh buildLayer.sh dojox
|
|
sh buildLayer.sh dijit
|
|
```
|
|
|
|
To have 'pre-built' layers, you must have 3 files in your module folder:
|
|
|
|
1. run.js
|
|
2. layer.profile.js
|
|
3. main.js
|
|
|
|
See in dojox, dijit or xfile for examples.
|
|
|
|
## Feature Flags
|
|
|
|
The following 'has' flags are currently available:
|
|
|
|
### xblox
|
|
|
|
Enables the core for xblox and allows to run xblox scripts as such.
|
|
|
|
### xblox-ui
|
|
|
|
Enables the user-interface (views/widgets/etc...) for the xblox component. xblox is meant to run
|
|
on the server as well. When enabling, it adds at least 700KB in dependencies, mostly for the
|
|
expression editor which comes which large data for the Javascript API.
|
|
|
|
### xlog
|
|
|
|
When enabled, it add adds all from xlog/ to your application. It enables a LogManager and a Log-View.
|
|
Its not needed in most cases.
|
|
|
|
### xideve
|
|
|
|
Enables the visual editor components, its huge and has currently no support for builds yet.
|
|
|
|
### xreload
|
|
|
|
Enables module hot-reloading for developing XIDE
|
|
|
|
### xidebeans
|
|
|
|
Enables a XIDE specific layer in core classes and utils.
|
|
|
|
### delite
|
|
|
|
Tells the application that delite is or might be present. This affects nothing at the moment.
|
|
|
|
### xexpression
|
|
|
|
Enables the more advanced expression engine.
|
|
|
|
### filtrex
|
|
|
|
Enables the filtrex(bison) parser for xexpression
|
|
|
|
|
|
These are meant to be added to your dojoConfig/require-js has registry
|
|
|
|
'xblox-ui':true,'xlog':true,'xblox':true,'xideve':true,'xreload':true,'xidebeans':true,'delite':true,'xexpression':true, 'filtrex':true
|
|
|
|
|
|
|