// Generated by CoffeeScript 1.7.1 (function() { var fFindKeyStringPair, fOnLoad; fFindKeyStringPair = function(obj) { var key, oRet, val; for (key in obj) { val = obj[key]; if (typeof val === 'string' || typeof val === 'number') { return { key: key, val: val }; } else if (typeof val === 'object') { oRet = fFindKeyStringPair(val); if (oRet) { return oRet; } } } return null; }; fOnLoad = function() { var editor; document.title = 'Push Events!'; $('#pagetitle').text('Push your own event directly into the engine!'); editor = ace.edit("editor"); editor.setTheme("ace/theme/monokai"); editor.getSession().setMode("ace/mode/json"); editor.setShowPrintMargin(false); $('#editor').css('height', '400px'); $('#editor').css('width', '600px'); $('#but_submit').click(function() { var err, val; try { val = editor.getValue(); JSON.parse(val); window.scrollTo(0, 0); return $.post('/event', val).done(function(data) { $('#info').text(data.message); return $('#info').attr('class', 'success'); }).fail(function(err) { var fDelayed; if (err.status === 401) { return window.location.href = 'forge?page=forge_event'; } else { fDelayed = function() { if (err.responseText === '') { err.responseText = 'No Response from Server!'; } $('#info').text('Error in upload: ' + err.responseText); return $('#info').attr('class', 'error'); }; return setTimeout(fDelayed, 500); } }); } catch (_error) { err = _error; $('#info').text('You have errors in your JSON object! ' + err); return $('#info').attr('class', 'error'); } }); return $('#but_prepare').on('click', function() { var err, oSelector, obj, sel, url; try { obj = JSON.parse(editor.getValue()); if (obj.eventname && typeof obj.eventname === 'string' && obj.eventname !== '') { sel = ''; if (obj.body && typeof obj.body === 'object') { oSelector = fFindKeyStringPair(obj.body); if (oSelector) { sel = "&selkey=" + oSelector.key + "&selval=" + oSelector.val; } } url = 'forge?page=forge_rule&eventtype=custom&eventname=' + obj.eventname + sel; return window.open(url, '_blank'); } else { $('#info').text('Please provide a valid eventname'); return $('#info').attr('class', 'error'); } } catch (_error) { err = _error; $('#info').text('You have errors in your JSON object! ' + err); return $('#info').attr('class', 'error'); } }); }; window.addEventListener('load', fOnLoad, true); }).call(this);