mirror of
https://github.com/gristlabs/grist-core.git
synced 2024-10-27 20:44:07 +00:00
81 lines
1.8 KiB
JavaScript
81 lines
1.8 KiB
JavaScript
|
var dom = require('app/client/lib/dom');
|
||
|
var kd = require('app/client/lib/koDom');
|
||
|
var kf = require('app/client/lib/koForm');
|
||
|
var Layout = require('app/client/components/Layout');
|
||
|
var LayoutEditor = require('app/client/components/LayoutEditor');
|
||
|
|
||
|
function createTestTab() {
|
||
|
return kf.topTab('Layout',
|
||
|
kf.label("Layout Editor")
|
||
|
);
|
||
|
}
|
||
|
exports.createTestTab = createTestTab;
|
||
|
|
||
|
var sampleData = {
|
||
|
children: [{
|
||
|
children: [{
|
||
|
children: [{
|
||
|
leaf: 1
|
||
|
}, {
|
||
|
leaf: 2
|
||
|
}, {
|
||
|
leaf: 7
|
||
|
}, {
|
||
|
leaf: 8
|
||
|
}]
|
||
|
}, {
|
||
|
children: [{
|
||
|
children: [{
|
||
|
leaf: 3
|
||
|
}, {
|
||
|
leaf: 4
|
||
|
}, {
|
||
|
leaf: 9
|
||
|
}, {
|
||
|
leaf: 10
|
||
|
}]
|
||
|
}, {
|
||
|
leaf: 5
|
||
|
}]
|
||
|
}]
|
||
|
}, {
|
||
|
leaf: 6
|
||
|
}]
|
||
|
};
|
||
|
|
||
|
function getMaxLeaf(spec) {
|
||
|
var maxChild = spec.children ? Math.max.apply(Math, spec.children.map(getMaxLeaf)) : -Infinity;
|
||
|
return Math.max(maxChild, spec.leaf || -Infinity);
|
||
|
}
|
||
|
|
||
|
function createLeaf(leafId) {
|
||
|
return dom('div.layout_leaf_test', "#" + leafId,
|
||
|
kd.toggleClass('layout_leaf_test_big', leafId % 2 === 0)
|
||
|
);
|
||
|
}
|
||
|
|
||
|
function createTestPane() {
|
||
|
var layout = Layout.Layout.create(sampleData, createLeaf);
|
||
|
var layoutEditor = LayoutEditor.LayoutEditor.create(layout);
|
||
|
var maxLeaf = getMaxLeaf(sampleData);
|
||
|
return dom('div',
|
||
|
dom.autoDispose(layoutEditor),
|
||
|
dom.autoDispose(layout),
|
||
|
dom('div',
|
||
|
dom('div.layout_new.pull-left', '+ Add New',
|
||
|
dom.on('mousedown', function(event) {
|
||
|
layoutEditor.dragInNewBox(event, ++maxLeaf);
|
||
|
return false;
|
||
|
})
|
||
|
),
|
||
|
dom('div.layout_trash.pull-right',
|
||
|
dom('span.glyphicon.glyphicon-trash')
|
||
|
),
|
||
|
dom('div.clearfix')
|
||
|
),
|
||
|
layout.rootElem
|
||
|
);
|
||
|
}
|
||
|
|
||
|
exports.createTestPane = createTestPane;
|