UNPKG

databoxdex

Version:

216 lines (171 loc) 6.27 kB
var m = require("mithril") appendField = function(e) { var record_index = e.srcElement.getAttribute('record') var field_index = e.srcElement.getAttribute('field') var tmp = { name: records[record_index].generatorData['data'].name, type: records[record_index].generatorData['data'].type, length: records[record_index].generatorData['data'].length } if ((tmp.name == '') || (tmp.type == '')) { return false; } records[record_index].recordData.push(tmp); records[record_index].generatorData['data'].name = ''; records[record_index].generatorData['data'].type = 'c'; records[record_index].generatorData['data'].length = ''; } appendIDField = function(e) { var record_index = e.srcElement.getAttribute('record') var field_index = e.srcElement.getAttribute('field') var tmp = { name: records[record_index].generatorData['dataID'].name, value: records[record_index].generatorData['dataID'].value } // var exists = false; // for (var i = 0; i < dataBox['data'].length; i++) { // if ( dataBox[arr.substring(0,arr.length-2)][i].name == tmp.name ) { // exists = true; // break // } // } if ((tmp.value == '')) { return false; } records[record_index].recordDataID.push(tmp); records[record_index].generatorData['dataID'].name = ''; records[record_index].generatorData['dataID'].value = ''; } removeField = function(e) { var record_index = e.srcElement.getAttribute('record') var field_index = e.srcElement.getAttribute('field') var toDelete = []; for (var i = 0; i < records[record_index].recordDataID.length; i++) { if (records[record_index].recordDataID[i].name == records[field_index].recordData.name) { toDelete.push(i); } } for (var i = 0; i < toDelete.length; i++) { records[record_index].recordDataID.splice(toDelete[i],1) } records[record_index].recordData.splice(field_index, 1); } removeIDField = function(e) { var record_index = e.srcElement.getAttribute('record') var field_index = e.srcElement.getAttribute('field') records[record_index].recordDataID.splice(field_index, 1); } generateABAP = function(e) { var record_index = e.srcElement.getAttribute('record') var ABAPstringBegin = 'BEGIN OF record,<br>'; var ABAPstringData = ''; var ABAPstringEnd = 'END OF record.<br>' records[record_index].recordData.map(function(obj) { // type TYPE c LENGTH 1, ABAPstringData += obj.name + ' TYPE ' ABAPstringData += obj.type if (parseInt(obj.length) > 0) { ABAPstringData += ' LENGTH ' + obj.length + ' ,<br>' } else { ABAPstringData += ',<br>' } }) // console.log(ABAPstringBegin + ABAPstringData + ABAPstringEnd); // copyToClipboard(ABAPstringBegin + ABAPstringData + ABAPstringEnd) // alert('Copied to clipboard'); var win = window.open("", "Title", "toolbar=no, location=no, directories=no, status=no, menubar=no, scrollbars=yes, resizable=yes, width=780, height=200, top="+(screen.height-400)+", left="+(screen.width-840)); win.document.body.innerHTML = ABAPstringBegin + ABAPstringData + ABAPstringEnd; } appendNewRecord = function() { records.push({ generatorData : { data: { name: '', type: 'c', length: '' }, dataID: { name: '', value: '' } }, recordData: [], recordDataID: [] }); } removeRecord = function(index) { if (index==0) return false; records.splice(index, 1); } convertRow = function(row, field) { var tmpFields = []; var pos = 0; var string = ''; for (var i = 0; i < field.length; i++) { string = row.substring(pos,(parseInt(field[i].length)+pos)); if (string.trim() == '') { string = '&nbsp'; } tmpFields.push( string ); pos+=parseInt(field[i].length) } // if (pos<=row.length) { // tmpFields.push( row.substring((row.length-pos),row.length) ) // } databoxArrayData.push(tmpFields); } databoxConvert = function() { databoxArrayData = [] var rowIndex = 0; if (databoxData.length === 0) return false for (rowIndex = 0; rowIndex < databoxData.length; rowIndex++) { identified = false; var identifier = '' var tmpRow = [] row = databoxData[rowIndex] for (var i = 0; i < records.length; i++) { identifier = '' for (var y = 0; y < records[i].recordDataID.length; y++) { identifier += records[i].recordDataID[y].value } if ((row.substring(0, identifier.length) == identifier)&&identifier.length!==0) { convertRow(row,records[i].recordData) identified = true break; } } if (identified == false) { tmpRow.push(row) databoxArrayData.push(tmpRow) console.log('Row '+rowIndex+' could not be matched with any records.') } } } labelData = function() { function label(text, title) { return m('span',{class:"label label-default",title:""},[m.trust(text)]) } var template = [] for (var i = 0; i < databoxArrayData.length; i++) { for (var x = 0; x < databoxArrayData[i].length; x++) { template.push( label(databoxArrayData[i][x]) ) } template.push( m('br') ) } return template } refreshData = function() { databoxConvert() m.redraw() } importJSON = function() { var json = window.prompt(); records = JSON.parse(json); refreshData(); } exportJSON = function() { var win = window.open("", "Title", "toolbar=no, location=no, directories=no, status=no, menubar=no, scrollbars=yes, resizable=yes, width=780, height=200, top="+(screen.height-400)+", left="+(screen.width-840)); win.document.body.innerHTML = JSON.stringify(records); // copyToClipboard(JSON.stringify(records)); // alert('JSON export was saved in your Clipboard') }