databoxdex
Version:
167 lines (127 loc) • 4.31 kB
JavaScript
var m = require("mithril")
var root = document.body
var rawDatabox = '';
var headerTitle = {
view: function() {
return m("div", [
m("h3", {
class: "title"
}, "DataBoxDéx")
])
}
}
records = [
{
generatorData : {
data: {
name: '',
type: 'c',
length: ''
},
dataID: {
name: '',
value: ''
}
},
recordData: [],
recordDataID: []
}
];
generatorData = {
data: {
name: '',
type: 'c',
length: ''
},
dataID: {
name: '',
value: ''
}
}
// The header fields creator
mainFunctions = require("./components/_main.js")
helperfunctions = require("./components/_helpers.js")
dataGenerator = require("./components/_data.js")
databoxRawData = '';
databoxParsedData = 'Import a Data Box!';
databoxArrayData = [];
databoxData = '';
loadDataboxFile = function(fileInput) {
var file = fileInput.srcElement.files[0];
var reader = new FileReader();
reader.onload = function(e) {
databoxRawData = reader.result;
databoxData = databoxRawData.split('\n');
refreshData();
}
reader.readAsText(file);
}
var main = {
view: function() {
var activeTab = function(route) {
var tabClasses = "tab-pane fade";
if ((m.route.get()==route)||(route=='parsed'&&m.route.get()==route)) {
return tabClasses+" active in";
} else {
return tabClasses;
}
}
var currentRoute = m.route.get()
return m("div", {class:"container documents", config: databoxConvert },[
m(headerTitle),
m(dataGenerator),
m("div",{class:"row"},[
m("div",{class:"col-md-2"},[
m("div",{class:"panel panel-default"},[
m("div",{class:"panel-heading"},["Databox"]),
m("div",{class:"panel-databox"},[
m("input",{class:"form-control",type:"file",onchange:loadDataboxFile},[]),
function() {
if (databoxRawData=='') {
return false;
}
return [
m("br"),
m("button",{class:"btn btn-danger btn-block", onclick:refreshData},["Parse"]),
m("button",{class:"btn btn-info btn-block", onclick:importJSON},["Import JSON"]),
m("button",{class:"btn btn-success btn-block", onclick:exportJSON},["Export JSON"])
]
}()
])
])
]),
m("div",{class:"col-md-10"},[
function() {
if (databoxRawData=='') {
return false;
}
return [
m("div",{class:"panel panel-default"},[
m("div",{class:"tabbable tabs-left clearfix"},[
m("ul",{id:"myTab1",class:"nav nav-tabs"},[
m("li",{class:function(){ if ((currentRoute=="/original")) { return "active"; } }() },[ m("a[href='#!/original']", {config: m.route, "data-toggle":"tab"},["Original File"]) ]),
m("li",{class:function(){ if ((currentRoute=="/parsed")||(currentRoute=='/home')) { return "active"; } }()},[ m("a[href='#!/parsed']", {config: m.route, "data-toggle":"tab"},["Parsed File"]) ]),
]),
m("div",{id:"myTabContent",class:"tab-content"},[
m("div",{class:activeTab("/original"),id:"original"},[
m("pre",{id:"dataBoxDisplayArea"},[databoxRawData])
]),
m("div",{class:activeTab("/parsed"),id:"parsed"},[
m("pre",{},[ labelData() ])
])
])
])
])
];
}()
])
])
])
}
}
m.route.mode = "hash";
m.route(root, "/home", {
"/home": main,
"/original": main,
"/parsed": main
});