Tuesday, January 22, 2013

Error FAKEROOTKEY set to 818929733

When i was trying to compile linux kernel, i bump into the following issue, 

fakeroot: FAKEROOTKEY set to 818929733 
fakeroot: nested operation not yet supported

Turn out that i was actually running root on top of my username. :D 
To fix this, just type "exit" to get out of the root mode and execute fakeroot command again. 

Friday, January 18, 2013

Knockoutjs markup evaluation is javascript like

Lets say you have an observable called "totalRecordCount" and using the following code to evaluate if a markup should be visible.

data-bind="visible : $index < $root.totalRecordCount"

All these will be evaluated to false, until .........

data-bind="visible : $index() < $root.totalRecordCount()"

Seems like evaluation falls back pretty much to traditional javascript evaluation.

Tuesday, January 15, 2013

Navigating around jstree

Here are some methods that you probably need to know to work with jstree.

1. Get the currently selected node

var treeDivControlName = "myJsTree";

var selectedNode = $('#'+ treeDivControlName).jstree('get_selected');

2. Get the path from root to the currently selected node 

var parents = $("#" + treeDivControlName).jstree("get_path", selectedNode);

3. Creating a  new node in your tree 

$("#" + treeDivControlName).jstree("create", selectedNode, "inside", newNode.node);

4. Removing the currently selected node 

$("#" + treeDivControlName).jstree("remove", null);  // null will remove the currently selected node

Working with JsTree : Create a tree

jstree is one of the most popular javascript tree user control around.  However, using it is not so straight forward. Let's go ahead and create your first jsTree. There are several ways to create a jstree either through HTML or via JSON. This is really just a matter of loading the proper plugin. Think of plugin as feature for your jstree.

Please include jquery and jquery.jstree.js in your page. The code sample below show how to create a simple jsTree, JSON way.

$("#" + treeDivControlName).jstree({
"json_data" : {
"data" : [
c1.node, c2.node, companyNode.node
"plugins" : [ "themes", "json_data", "ui", "checkbox", "crrm", "contextmenu" ]
}).bind("select_node.jstree", function (e, data)
 alert(data.rslt.obj.data("id") +  ":" + data.rslt.obj.data("nodeType"));

Check out the plugin section - you can see we have checkbox, contextmenu. These are also known as features. For example, checkbox plugin renders checkbox for each tree node. Context menu popups a menu whenever user right click on the tree.

Using Method in jstree.

There are two different ways of calling methods in JsTree as indicated by the docs.

Method #1 and samples

Noticed the bold method name passed in as string. This method create a new node in your tree. Please refer to doc to get more.

$("#" + treeDivControlName).jstree("create", selectedNode, "inside", createNode.node);

Method #2 and samples 

These methods are basically perceded by underscore ( _ ) which typically used by internal developers for testing and debugging purposes.

Sample code to call _get_children(node);

var treeInstance = $.jstree._reference($("#"+ treeDivControlName));
var child = treeInstance._get_children(selectedNode);

If you refer to the documentation, i think you will know how to get most of the call right.

That's all for now, till next time.