Content Translation Server

Change-Id: I8f920cddf6f454f69b2e3e6247fb4c18219d3e19
Fix the loading of config.js

File path was wrong

Change-Id: I04ea3456f4d26d3e9ce6c9987815967c85b4e596
Basic MT UI and tests

Change-Id: I7076d003788a6f1203e41ed4adeeef236a8c5c7e
Make the server runnable without cluster setup

This patch make it possible to run a single process instance

Change-Id: I587ba30a08dd2970283d737eb4928c08926c7ac6
Server: Basic socket.io setup

Change-Id: I61db71ab1617e714f43c540a49eb9398340df3cb
Server: Simple data model manager

Change-Id: I38c326b0d8649e6c10b7fb996ad6c9fd97bf5a6c
Functional segmentation

Change-Id: I0aa31a0e5035f124910b41f4a4f8a72cab969c73
Add PageLoaders

Examples:
ParsoidPageLoader = require( './pageloader/ParsoidPageLoader' ).ParsoidPageLoader
l = new ParsoidPageLoader( 'http://parsoid.wmflabs.org', 'enwiki' );
promise = l.load( 'Food' )
promise.then( function ( x ) { console.log( x ); } );
promise.done();

MediaWikiApiPageLoader = require( './pageloader/MediaWikiApiPageLoader' ).MediaWikiApiPageLoader
l = new MediaWikiApiPageLoader( 'http://en.wikipedia.org/w/api.php' );
promise = l.load( 'Food' )
promise.then( function ( x ) { console.log( x ); } );
promise.done();

Change-Id: Iddc35275dbf71ecf549fb834528722242800ce96
Correction in dummy sentence segmenter

Split using period+space instead of period.

Change-Id: I2eabba15bd616f0777ded4332fe8d177bbfeb112
Wrapper for page loader to choose one based on configuration

Change-Id: I4a0434b5c77f23fe16831799c19ed88de8dfd93b
Pass page URL instead of content to get the data model

Change-Id: I3fdb99732b94a9b593d426e7f87c7607e6944402
Include section titles also in segmentation

Change-Id: I77e1d228c2b5f823d664b60ea87be444361bb7eb
Redis data store for the CX data model

A very simple redis strore that stores the data model in json string
with key as the source page.

Change-Id: Idca80f88e42ccc2e385bd24ced0b61013ef84033
Use Redis as storage for socket.io

So that the instances can share the socket information

Change-Id: I28ceacb472d168140ef044ca8aad1926b24fb999
Client: Subscribe for cx.data.update only once

Change-Id: Iab0940c9b0a880cb505c932c91bc62e332cdc17b
Client: For connecting to socket, port is optional, remove it

Change-Id: I914a32def6de39e04c7212dfd699dfc65998a77a
Fix the usage of promise for page loader

As per https://github.com/kriskowal/q/wiki/Coming-from-jQuery

Change-Id: I5037141bdedf0dc6aa7fdf9782608b4162cb6c60
Correct the selectors in server playground javascript

Chrome is happy with wrong selector. FF complains.

Change-Id: Idcbdbd93973a9f934a0a63a7bc5666ac9c5e24a4
Add missing jquery module

* Add jquery node module to package.json
* Sorted alphabetically

Change-Id: I4e8c0e7d597e31532b9a30490a12ed685999b6a8
Merge "Add missing jquery module"