// Start headers var requester = { headers: { 'x-sgw':12345, 'othertest':1234 }, params: { } }; class MLog { constructor(jElem,listobj) { this.jElem = jElem; this.count = 0; } raw(msg) { var $output = $(this.jElem); $output.each(function() { var $this = $(this); // Cache element var tolerance = 100; var doscroll = false; if($this.scrollTop() + $this.innerHeight() >= $this.prop('scrollHeight')-tolerance){ doscroll = true; } $this.append( msg ); if(doscroll) { $this.scrollTop($this.prop('scrollHeight')); } }); this.count++; } info(msg) { this.raw('
[' + this.count + '] ' + msg + '
'); } error(msg) { this.raw('[' + this.count + '] ' + msg + '
'); } clear() { $(this.jElem).html(''); } } var mlog = new MLog('.output'); class ListController { constructor(targetPane,targetObject) { this.targetPane = targetPane; this.targetObject = targetObject; } setupInteraction() { var self = this; $(document).on('click', this.targetPane + ' .entry-remove',function() { $(this).parent().remove() }); $(document).on('click', this.targetPane + ' .entry-new',function() { self.add(); }); $(this.targetPane + ' .entry-input').on('keypress', function(e) { if(e.which != 13) return; var content = $(this).val(); var arr = content.split(':'); if(arr.length != 2) { mlog.error('Invalid format'); return; } var headerKey = arr[0].trim(); var headerContent = arr[1].trim(); mlog.info('Header:' + headerKey + ' as "' + headerContent +'"'); self.targetObject[arr[0].trim()] = arr[1].trim(); self.update(); $(this).val(''); }); } update() { console.log("HEaders: %o", this.targetObject); for( var k in this.targetObject) { this.add(k,this.targetObject[k]); } } add(key,value) { var k = key || ""; var v = value || ""; var $list = $(this.targetPane + ' .entry-list'); $list.append(''+ result + '
');
},
error: function(xhr, err, thrown) {
mlog.error('[' + xhr.status + '] ' +thrown + '');
}
})
});
// Header handler area
});