You are here

breacrumb

Wakanda Roadmap

The goal of the Wakanda Roadmap is to show our current development initiatives. The Wakanda development team is responsible for making the roadmap a "live list of features" with frequent updates and eventual changes (additions, deletions, or modifications) to the list.

Regarding this roadmap:

  • The Progress column is a rough estimate of the progress during the development and test phases. We might add comments to a feature's description or add a link to a forum or blog post to better explain our current development efforts or possible obstacles.
  • The Target column (when indicated) shows in which version the feature will be available. It may also contain information about which build (in the DEV branch) you can test the feature before its final release.

The Wakanda development team reserves the right to change or delete any roadmap feature at any time during our development cycle. If we delete a feature, we will do our best to explain the reasons for such a decision.

 

Last update: Oct 23th, 2014 Next update: Nov 15th, 2014

(use ctrl + clic for multiple selection)
Progress Features Admin Target
90%

Rewriting Widget Matrix for new Widget Architecture

We are developing a new version of the Matrix widget based on the new widget architecture and API. The new matrix will accept any Custom Widget. It will be delivered via Addons (github)

Wakanda Version : Wakanda 10 / Development Channel 

 

in development
90%

Mechanism to rename a dataclass and keep data intact

When you rename a dataclass, your data is kept intact but unavailable to the new dataclass. We are creating the mechanism to address this issue and give you the freedom to rename a dataclass without "loosing" your data. 

in development
80%

Google V8 engine

Google V8 engine is now a better fit for Wakanda than JavaScriptCore, our goal is to :

- increase performance
- better control the garbage collection (consistency)
- support multi-cores (less memory manager contention)

We are building a version of Wakanda Server using V8 for SSJS.

in development
60%

Web Studio - a full web version of the Wakanda Studio

A WebStudio completely available in the browser with a responsive interface based on bootstrap grid system and themes. 

First Draft : Dez/2014

Release date : Jul/2015. 

 

 

in development
60%

New Combobox widget

A new combobox to substitute the current combobox based on the new widget architecture and available via Addons (github)

The new combobox will be ISO functional with the existent combobox but it will also add :

* html templating

* grouping 

* autocompletion

* search 

Preview for Wakanda 10 

 

 

in development
50%

Admin page for a "Super User"

We want to have 2 Wakanda Admin Pages :

1. A Server Admin : available only for the "Super User", this page gives you access to all the projects. The super admin can do backups, restores, compactations and verifications.  

2. A Project Admin : available only for the project's admin.  The project's admin will be able to verify and backup its data.

 

 

in development
40%

Dataclass object attribute - Client Side

Take advantage of the new dataclass property 'object' inside the studio, you will be able to bind your datasources with the new attribute on your widgets. 

in development
30%

Get detailed information about Wakanda database engine events => getMeasures( ) method

getMeasures( [Object options] )


The returned object contains a single property named "DB" that has the following basic structure :

{
    "DB": {
        "diskReadBytes": {…},
        "cacheReadBytes": {…},
        "cacheMissBytes": {…},
        "diskWriteBytes": {…},

        "diskReadCount": {…},
        "cacheReadCount": {…},
        "cacheMissCount": {…},
        "diskWriteCount": {…},

        "dataSegment1": {…},
        "indexSegment": {…},

        "tables": {…},
        "indexes": {…}

    }
}

in development
100%

Phonegap / Cordova Extension

Enter your Wakanda project name and this extension will save all the necessary files to the phonegap upload -

Log:

Issue with authentication is fixed. 

Tests with the Custom Widgets : passed

Tests with the telephone contact list : in progress 

Confirmed for WAKANDA 11 

in development (Enterprise features)
100%

Database statistics API

You will be able to get and manipulate a JavaScript object with your database statistics, including all the hits to the server, cache and dataclasses.

 

in development (Enterprise features)
100%

Sandbox file system access for system workers

The idea is to use a new settings file to declare a list of available external executables that can be launched within a solution as system workers.

For example, let's say there is a "systemWorkers.json" file with the following content:

[
    {
        "name" : "git",
        "executable" :
        [
            { "path" : "/usr/bin/git" },
            { "path" : "/usr/local/bin/git" },
            { "path" : "/usr/local/git/bin/git" },
            { "path" : "C:\\Program Files (x86)\\Git\\bin\\git.exe" }
        ]
    }
]
Developer would then be able to execute a git command by creating the following worker:

new SystemWorker ( "git version", null );

 

Wakanda 10
100%

Add event parameter to the function for all datastore class and attribute events

Add the event parameter to all datastore class and attribute events (which is an object in which the following data can be retrieved):
- eventKind
- attributeName
- dataClassName
- error
- errorMessage

In WAK9 and before

model.Company.events.init = function() {
    // Add your code here;
};


Wakand 10 we can add the following:

model.Company.events.init = function(event) {
    // Add your code here;
};

Wakanda 10
100%

Save Theme's roles in the custom Theme

The theme's roles are a powerful way to customise your theme. The roles are saved in the application.css file in your project folder. We want to allow you to use the customised roles for all your projects by saving the role in your custom Theme. 

This feature will allow users to:

1. Get an existent theme 

2. Create customised roles for the existent theme

3. Save the existent theme and the customised roles as a new theme. 

4. Use the new theme and roles to a different project. 

Wakanda 10
100%

Add the configParameterObject to SMTP.send

configParameterObject is a JavaScript containing all SMTP server parameters as attributes :


address = configParameterObject.address;
port = configParameterObject.port;
isSSL = configParameterObject.isSSL;
username = configParameterObject.username;
password = configParameterObject.password;
domain = configParameterObject.domain;

this allows to smoothly add an optional "domain" parameter

 

Wakanda 10
100%

Dataclass object attribute - Server Side

This new feature is very exciting, you will be able to create a dataclass attribute with a new type : "object". This new type will allow you to store JavaScript objects directly into the Wakanda database. Also, the objects are fully indexable !  

Wakanda 10
100%

Security password encryption for admin users

Automatic save, encrypt and protect passwords on the server side for admin users

Wakanda 10
100%

AngularJS and Wakanda API

This new API (WakandaServices for AngularJS) will help you to connect your AngularJS client code with the Wakanda framework, database and all the business object methods available to your data. Take advantage of our REST API using AngularJS with an api specially designed to speed your development when acessing the Wakanda framework. 

 

Wakanda 10
100%

Controlling the html saved by Studio from Custom Widgets

As a widget developer I want to be able to define a css class that will not be saved or managed by the studio. 

The developer can assign a waf-studio-donotsave to a sub element of the custom widgets, so the subelement won't be save in the resulting html file. 

MyWidget = widget.create('MyWidget', {
    init: function() {
        this.node.html = '<button>This will be saved</button><div class="waf-studio-donotsave">This won't be saved in the HTML</div>';
    }
});
Wakanda 10
100%

A method to export your entities in a JSON or SQL format

The exportAsJSON( )  and exportAsSQL( )  methods exports all the entities stored in the object for which it is called in JSON or SQL format. These methods can be called for a:

  • Datastore: entities from all the datastore classes are exported,
  • DatastoreClass: entities from the datastore class are exported,
  • EntityCollection: entities from the entity collection are exported.
Wakanda 10
100%

Autocompletion CSS improvements

We are refactoring our autocompletion system to also suggest CSS selectors and classes while editing CSS files in the Wakanda Studio. 

Wakanda 10
100%

Pageable behaviour for Custom Widgets

When developing a widget, you may need a way to paginate your content. This behaviour will help you paginate your widgets, you define the html element to be reproduced, the container in which the html element will be inserted and the datasource and the behaviour will manage the loading of new elements for your widget. 

 

Wakanda 10
100%

Behavior Multicontainer for Custom Widgets

The beheviour Multicontainer will help developers to manage a list of containers for Custom Widgets. A good example is the TabView widget: Each tab is a container and you can have multible tabs. The behavior will help you navigate theses container with the follwing API :

Class methods

defaultContainer(widget)

Instance methods

addContainer(options)
countContainers( ) -> number
currentContainer( )
currentContainerIndex( ) 
defaultContainerClass(container_class)
insertContainer(index, options)
lastContainer( )
moveContainer(from, to)
setLastContainerAsCurrent( )
container(index, widget)
containers( )
removeAllContainers( )
removeContainer(index)

Wakanda 10
100%

Template Behaviour for Custom Widgets

When designing a custom widget you may want to use a template to define your html display. You may also want to give the possibility of the user to change the template directly in the Wakanda Studio. This behaviour will implement this functionality for Custom Widgets. 

Wakanda 10
100%

Custom Widgets - Livescroll behavior

This behavior helps Custom Widgets developers to implement a livescroll feature into their widgets.

Example 

WAF.define('LiveScrollTest', ['waf-core/widget', 'Text'], function(widget, Text) {
    var LiveScrollTest = widget.create('LiveScrollTest', {
        rows: widget.property({ 
            type: 'datasource',
            attributes: ['title'],
            pageSize: 40
        }),
        getScrolledNode: function() {
            if(!this.node.getElementsByTagName('div')[0]) {
                this.node.innerHTML = '<div></div>';
            }
            return this.node.getElementsByTagName('div')[0];
        },
        getRowHeight: function() {
            return 40;
        }
    });
    LiveScrollTest.inherit('waf-behavior/layout/repeater-livescroll');
    LiveScrollTest.linkDatasourcePropertyToRepeater('rows');
    LiveScrollTest.repeatedWidget(Text);
    LiveScrollTest.mapAttributesToRepeatedWidgetProperties({
        title: 'value'
    });

    return LiveScrollTest;
});
Wakanda 10
100%

The behaviour Repeater for Custom Widgets

This behaviour will help developers to create Custom Widgets based on repeating patterns such as the Matrix and lists. Once inherited, the Custom widget will have all the methods to manipulate and duplicate rows inside the widget. 

Wakanda 10
100%

Widgets - Binding Formats to the Widget

This feature will help developers to transform or format the values returned from a datasource before displaying them in the widget. 

The formatter should be defined in a JS file and added to your pages. Once done, you can create and register a formatters as it follows :

Example of transforming a widget value to lowercase :

WAF.require('waf-core/formatters').create('lowercase', {

    format: function(value) { if (value) { return value.toLowerCase(); } else {return null} },
    unformat: function(value) { return value; },
});

 

 

Wakanda 10
100%

Console.log from the Extension's context

The user will be able to console.log from the extension to the wakanda log. 

 

Wakanda 10
100%

Wakanda Command Line tool

Wakanda Shell is a command line tool for Wakanda and is available for Macintosh and Linux. Here are some of the key features in Wakanda Shell:

  • Connect to/disconnect from a Wakanda Server,
  • Run JavaScript code server-side, and
  • Send and execute a local JavaScript file on the server.
Wakanda 10
100%

Dual way synchronisation between widget properties and properties panel

The Studio property panel should be updated when a change event is fired or when a datasourceBindingChange event is fired on the custom widget.

Wakanda 10
100%

Host your code in any git Server

There is a need to be able to host Wakanda Git repositories on any Git server and not just github.com.

Wakanda Studio will be able to pull and push from  servers using generic Git HTTP URLs.

 

Wakanda 10
100%

shellWorker commonJS module

We need an easy way to execute shell script without having to manually launch bash or cmd.exe passing it the script with escaped strings.

Provide a SSJS module to ease execution of shell commands.

Documentation
The shell worker is a wrapper around SystemWorker that simplifies several things:
- shell worker automatically calls cmd.exe on windows and /bin/sh on unix
- the command line and arguments are formatted and passed appropriately on each platform
- there's no need to escape characters aside from normal js or command related escapes.
- because shell command are always text, output and error buffers are translated to text
- shell command do not use the standard input so the parameter has been removed
- synchronous mode throws a JS exception in case of error.

Wakanda 10
100%

Runtime Custom Widget instantiation

As an application developer, I want to be able to instanciate widgets at runtime.

in a page javascript file for example :

var MyWidget = WAF.require('mywidget');
var instance = new MyWidget();

Wakanda 10
100%

Console/command line tool

This new tool allows you to access Wakanda Server and run commands. You can get results and logs immediately.

Wakanda 10 Enterprise
100%

Authentication using LDAP Server

waf-ldap is a new Wakanda module that allows you connect to a LDAP server (such as Windows Active Directory, OpenLDAP Server, and Open Directory), to bind users and to execute searches in the remote directory.

PS. FORUM THREAD CREATED FOR THIS FEATURE, please check our forum.wakanda.org

Wakanda 10 Enterprise
70%

Generate your themes with LESS

LESS (Leaner CSS) is a dynamic stylesheet language that will help developers create new themes. We are preparing a LESS structure to speed the process of creating a theme for Wakanda. You will change a few values and the LESS script will generate a new theme for you with all the selectors and widgets on it, ready for use. 

Due to some changes in the team, this task is suspended until november/2014

 

 

 

Backlog
10%

Solution snapshot

This extension allows you to create a zip file with only the basic structure needed to run a particular solution. This feature will enable you to share only the fundamental parts of a solution, thus reducing its size as well as the uploading time to other repositories.

Backlog
10%

Grid widget rewritten

We are improving the Grid widget and basing it on the new widget structure and API. The Grid widget will include more customization features, like paging options and variable row size.

Backlog
10%

Enhancing mobile device events

Adding support of advanced touch events, like taphold and swipe.

Backlog
10%

API for monitoring Wakanda Server

We are creating an API that will allow you to monitor Wakanda Server. Some methods will allow you to ask the server how many contexts are open, list all the contexts, list database operations, etc.

Backlog
10%

Improved error handling server-side

Wakanda will be using web sockets to provide better error handling at the server level, thus allowing your application to receive better error messages that are clearer and more descriptive.

Backlog
10%

New Tree View widget

We are developing a Tree View widget that allows you to view data hierarchically. Each item can have a number of subitems. Users can then navigate the structure by adding, deleting, and updating tree nodes.

Backlog
10%

Customise graphics with Flotr2

Customise your Wakanda Pages with first level graphs by using the Wakanda widget with the Flotr2 JS library.  

Starting implementation on JUNE/2014

 

Backlog
30%

MySQL connector PRO

Access and manage your MySQL databases directly in Wakanda Enterprise Studio. As a developer you will have your MySQL model and data  available in the Wakanda Studio model designer. 

Backlog - Enterprise
10%

Definable location for your application's data

This feature allows you to save your application’s data to a custom location, which can even be outside of your project’s folder. Saving your data in another location not only gives you more flexibility, but also more possibilities to share your work with other developers.

Backlog - Enterprise
10%

External Authentication (OAuth/OpenID)

Wakanda is implementing an authentication mechanism tha is decoupled from any specific authentication strategy, a developer could use our build-in directory, a model, deletaged authentication(OAuth°, or federated authentication (OpenID) as their authentication strategy.

Backlog - Enterprise
10%

Reporting

The Report Designer will be available directly in the Studio. It will facilitate the creation of reports, including the capacity to preview and populate the report previous execution. The user will be able to define the header, content, footer and how the data is break among the pages of the report. 

 

Backlog - Enterprise
10%

MS SQL Connector PRO

Access and manage your MS SQL databases directly in Wakanda Enterprise Studio. As a developer you will have your MS SQL model and data  available in the Wakanda Studio model designer. 

Backlog - Enterprise