AO Console Before AngularJS

by jcpmcdonald

HTML

<div id="console" class="panel">
	<div id="consoleWrap">
		<div id="history">
			<!-- Template:	(reference only)
			<div class="consoleLine">
				<span class="consoleID">Username</span>
				<span class="consoleText">Message</span>
				<span class="consoleTime">Timestamp</span>
			</div>
			-->
		</div>
		<div id="consoleInputWrap">
            <input type="text" id="consoleInput" />
		</div>
	</div>
</div>

CSS

body
{
	background-color: rgba(0, 0, 0, 0);
	color: #FFFFFF;
	
	-moz-user-select: none;
	-webkit-user-select: none;
}

.panel
{
	position: absolute;
	background-color: rgba(100, 100, 100, 0.7);
	border-color: #bbbbbb;
	border-width: 1px;
}


#console
{
	bottom: 0px;
	right: 10px;
	
	font-size: small;
	text-shadow:0 1px 0 rgba(255,255,255,0.3);
	
	padding: 10px;
	border-radius: 15px 15px 0px 0px;
	border-style: solid solid none solid;
	-moz-user-select: text;
	-webkit-user-select: text;
}

#consoleWrap
{
	position: relative;
	width: 350px;
    
	display: table-cell;
	vertical-align: bottom;
}

#history
{
    overflow: auto;
	
	height: 150px;
	max-height: 150px;
	
	background-color: rgba(70, 70, 70, 0.5);
}

.consoleID
{
	width: 50%;
	color: rgba(230, 230, 230, 0.6);
	font-weight: lighter;
}

.consoleID:after
{
	content: ": ";
}

.consoleLine:hover
{
	background-color: rgba(70, 70, 70, 0.6);
}

.consoleTime
{
	color: rgba(220, 220, 220, 0.6);
	float: right;
	margin-right: 5px;
	
	-moz-user-select: none;
	-webkit-user-select: none;
}

#consoleInputWrap
{
	height: 20px;
	padding-top: 5px;
}

#consoleInput
{
	width: 100%;
	padding: 0px;
}

JavaScript

// BEFORE

function addConsoleMessage(name, message)
{
	$("#history").append('<div class="consoleLine"><span class="consoleID">' +
	                     name +
	                     '</span><span class="consoleText">' +
	                     message +
	                     '</span><span class="consoleTime">' +
	                     (new Date()).toLocaleTimeString() +
	                     '</span></div>');
	$("#history").scrollTop($("#history").prop("scrollHeight"));
   
	// Execute javascript on request
	if(message.toLowerCase().indexOf("/js ") == 0)
	{
		eval(message.substr(4));
	}
}
 
$(document).ready(function()
{
	var username = "me";
   
	$("#consoleInput").keyup(function(event){
		if(event.which == 13)
		{
			var text = $("#consoleInput").val().trim();
			$("#consoleInput").val("");
			if(text == "")
			{
				return;
			}
			
			addConsoleMessage(username, text);
		}
	});
});