<!DOCTYPE html>
<!--
/*
 * The FreeSWITCH Portal Project
 * Copyright (C) 2013-2013, Seven Du <dujinfang@gmail.com>
 *
 * Version: MPL 1.1
 *
 * The contents of this file are subject to the Mozilla Public License Version
 * 1.1 (the "License"); you may not use this file except in compliance with
 * the License. You may obtain a copy of the License at
 * http://www.mozilla.org/MPL/
 *
 * Software distributed under the License is distributed on an "AS IS" basis,
 * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
 * for the specific language governing rights and limitations under the
 * License.
 *
 * The Original Code is The FreeSWITCH Portal Project Software/Application
 *
 * The Initial Developer of the Original Code is
 * Seven Du <dujinfang@gmail.com>
 * Portions created by the Initial Developer are Copyright (C)
 * the Initial Developer. All Rights Reserved.
 *
 * Contributor(s):
 *
 * Seven Du <dujinfang@gmail.com>
 *
 *
 * index.html -- The FreeSWITCH Portal Project
 *
 */
-->
<html lang="en">
<head>
	<meta charset="utf-8">
	<title>Bootstrap, from Twitter</title>
	<meta name="viewport" content="width=device-width, initial-scale=1.0">
	<meta name="description" content="">
	<meta name="author" content="">

	<!-- Le styles -->
	<link href="assets/bootstrap/css/bootstrap.css" rel="stylesheet">
	<style>
	body {
		padding-top: 60px; /* 60px to make the container go all the way to the bottom of the topbar */
	}
	</style>
	<link href="assets/bootstrap/css/bootstrap-responsive.css" rel="stylesheet">

	<!-- HTML5 shim, for IE6-8 support of HTML5 elements -->
	<!--[if lt IE 9]>
	<script src="assets/js/html5shiv.js"></script>
	<![endif]-->

	<!-- Fav and touch icons -->
	<link rel="apple-touch-icon-precomposed" sizes="144x144" href="assets/ico/apple-touch-icon-144-precomposed.png">
	<link rel="apple-touch-icon-precomposed" sizes="114x114" href="assets/ico/apple-touch-icon-114-precomposed.png">
	<link rel="apple-touch-icon-precomposed" sizes="72x72" href="assets/ico/apple-touch-icon-72-precomposed.png">
	<link rel="apple-touch-icon-precomposed" href="assets/ico/apple-touch-icon-57-precomposed.png">
	<link rel="shortcut icon" href="assets/ico/favicon.png">
</head>

<body>

	<div class="navbar navbar-inverse navbar-fixed-top">
		<div class="navbar-inner">
			<div class="container">
				<button type="button" class="btn btn-navbar" data-toggle="collapse" data-target=".nav-collapse">
					<span class="icon-bar"></span>
					<span class="icon-bar"></span>
					<span class="icon-bar"></span>
				</button>
				<a class="brand" href="#">FreeSWITCH Portal</a>
				<div class="pull-right" id='ws-status' style="padding-top:5px"></div>
				<div class="nav-collapse collapse">
					<ul class="nav">
						<li class="active"><a href="#">Home</a></li>
						<li><a id="menu-users" href="#users">Users</a></li>
						<li><a id="menu-calls" href="#calls">Calls</a></li>
						<li><a id="menu-channels" href="#channels">Channels</a></li>
						<li><a href="#show">Show</a></li>
						<li><a href="#about">About</a></li>
					</ul>
				</div><!--/.nav-collapse -->
			</div>
		</div>
	</div>

	<div class="container" id="container">
		<div id="calls" style="display:none"></div>
		<div id="channels" style="display:none"></div>
	</div> <!-- /container -->

	<div id="aa"></div>
	<script type="text/x-handlebars" data-template-name="index">
		<h1>Welcome to FreeSWITCH Portal</h1>
		Welcome
	</script>

	<script type="text/x-handlebars" data-template-name="showApplications">
		<h1>Applications</h1>
		<div>
			<table class="table">
			<tr>
				<th>Name</th>
				<th>Description</th>
				<th>Syntax</th>
				<th>iKey</th>
			</tr>
			{{#each App.applicationsController.content}}
			<tr>
				<td>{{ name }}</td>
				<td>{{ description }}</td>
				<td>{{ syntax }}</td>
				<td>{{ ikey }}</td>
			</tr>
			{{/each}}
			</table>
		</div>
	</script>

	<script type="text/x-handlebars" data-template-name="showEndpoints">
		<h1>Endpoints</h1>
		<div>
			<table class="table">
			<tr>
				<th>Type</th>
				<th>Name</th>
				<th>iKey</th>
			</tr>
			{{#each App.showEndpointsController.content}}
			<tr>
				<td>{{ type }}</td>
				<td>{{ name }}</td>
				<td>{{ ikey }}</td>
			</tr>
			{{/each}}
			</table>
		</div>
	</script>

	<script type="text/x-handlebars" data-template-name="showCodecs">
		<h1>Codecs</h1>
		<div>
			<table class="table">
			<tr>
				<th>Type</th>
				<th>Name</th>
				<th>iKey</th>
			</tr>
			{{#each App.showCodecsController.content}}
			<tr>
				<td>{{ type }}</td>
				<td>{{ name }}</td>
				<td>{{ ikey }}</td>
			</tr>
			{{/each}}
			</table>
		</div>
	</script>

	<script type="text/x-handlebars" data-template-name="showFiles">
		Unimplemented
	</script>

	<script type="text/x-handlebars" data-template-name="showAPIs">
		Unimplemented
	</script>

	<script type="text/x-handlebars" data-template-name="show">
		<h1>Show</h1>
		{{#linkTo "showApplications"}} Applications {{/linkTo}} |
		{{#linkTo "showEndpoints"}} Endpoints {{/linkTo}} |
		{{#linkTo "showCodecs"}} Codecs {{/linkTo}} |
		{{#linkTo "showFiles"}} Files {{/linkTo}} |
		{{#linkTo "showAPIs"}} APIs {{/linkTo}}
	</script>

	<script type="text/x-handlebars" data-template-name="about">
		<h1>About FreeSWITCH Portal</h1>
		<p>
			The FreeSWITCH Portal Project is Created by <a href="http://www.dujinfang.com">Seven Du</a>.
			Available with MPL1.1 licence - Same as FreeSWITCH.
		</p>
	</script>

	<script type="text/x-handlebars" data-template-name="users">
		<h1>Users</h1>
		<div>
			<table class="table">
			<tr>
				<th>ID</th>
				<th>Context</th>
				<th>Domain</th>
				<th>Group</th>
				<th>Contact</th>
				<th>Callgroup</th>
				<th>Caller ID Name</th>
				<th>Caller ID Number</th>
			</tr>
			{{#each App.usersController.content}}
			<tr>
				<td>{{ id }}</td>
				<td>{{ context }}</td>
				<td>{{ domain }}</td>
				<td>{{ group }}</td>
				<td>{{ contact }}</td>
				<td>{{ callgroup }}</td>
				<td>{{ cid_name }}</td>
				<td>{{ cid_number }}</td>
			</tr>
			{{/each}}
			</table>
		</div>
	</script>

	<script type="text/x-handlebars" data-template-name="calls">
	<div class="pull-right">
		<label><input type="checkbox" id="auto_update_calls" value="1" onclick="auto_update_calls();">Auto Update</label>
	</div>

	<h1>Calls</h1>

	<div>
		<table class="table">
		<tr>
			<th>Call UUID</th>
			<th>CID</th>
			<th>Dest</th>
			<th>Call State</th>
			<th>Direction / Created</th>
		</tr>
		{{#each App.callsController.content}}
		<tr>
			<td>{{uuid}} <br>{{ b_uuid }}</td>
			<td>{{ cid_num }}<br>{{ b_cid_num }}</td>
			<td>{{ dest }}<br>{{ b_dest }}</td>
			<td>{{ callstate }}<br>{{ b_callstate }}</td>
			<td>{{ direction }} / {{ b_direction }}<br>
			<a href='#' {{action "dump" uuid target="App.callsController"}}>{{created}}</a>
			<!--<a href='#' {{action "raw" uuid target="App.callsController"}}>Raw</a>-->
			</td>
		</tr>
		{{/each}}
		</table>
	</div>

	</script>

	<script type="text/x-handlebars" data-template-name="channels">

	<h1>Channels</h1>

	<div>

		<table class="table">
		<tr>
			<th>Call UUID</th>
			<th>CID</th>
			<th>Dest</th>
			<th>Call State</th>
			<th>Direction / Created</th>
		</tr>
		{{#each App.channelsController.content}}
		<tr>
			<td>{{uuid}}</td>
			<td>{{ cid_num }}</td>
			<td>{{ dest }}<br></td>
			<td>{{ callstate }}</td>
			<td>{{ direction }}<br>
			<a href='#' {{action "dump" uuid target="App.channelsController"}}>{{created}}</a>
			</td>
		</tr>
		{{/each}}
		</table>

	</div>

	</script>
<!-- Le javascript
================================================== -->
<!-- Placed at the end of the document so the pages load faster -->
<script src="assets/js/jquery-1.9.1.min.js"></script>
<script src="assets/js/handlebars.js"></script>
<script src="assets/js/ember-1.0.0-rc.1.js"></script>
<script src="assets/js/ember-data.js"></script>
<script src="assets/js/fsportal.js"></script>
<!--
<script src="assets/js/bootstrap-transition.js"></script>
<script src="assets/js/bootstrap-alert.js"></script>
<script src="assets/js/bootstrap-modal.js"></script>
<script src="assets/js/bootstrap-dropdown.js"></script>
<script src="assets/js/bootstrap-scrollspy.js"></script>
<script src="assets/js/bootstrap-tab.js"></script>
<script src="assets/js/bootstrap-tooltip.js"></script>
<script src="assets/js/bootstrap-popover.js"></script>
<script src="assets/js/bootstrap-button.js"></script>
<script src="assets/js/bootstrap-collapse.js"></script>
<script src="assets/js/bootstrap-carousel.js"></script>
<script src="assets/js/bootstrap-typeahead.js"></script>
-->
<script type="text/javascript">

	function auto_update_calls() {
		var x = $('#auto_update_calls')[0];
		if (typeof x != "undefined" && x.checked) {
			console.log("tick")
			App.callsController.load();
			setTimeout(auto_update_calls, 2000);
		}
	}

	// $("#menu-channels").click(function(e){
	// 	e.preventDefault();
	// 	App.channelsController.load();
	// 	$('#calls').hide();
	// 	$('#channels').show();
	// });

	// $("#menu-calls").click(function(e){
	// 	e.preventDefault();
	// 	App.callsController.load();
	// 	$('#channels').hide();
	// 	$('#calls').show();
	// });

	// var callsView = Ember.View.create({
	// templateName: 'calls',
	// name: "callsView"
	// });

	// // $('#container').html('');
	// callsView.appendTo('#calls');

	// var channelsView = Ember.View.create({
	// 	templateName: 'channels',
	// 	name: "channelsView"
	// });
	// channelsView.appendTo('#channels');

	function dump_call(uuid) {
		obj = App.callsController.content.findProperty("uuid", uuid);
		console.log(obj);
	}

	</script>

	<script type="text/javascript">

	var socket = new WebSocket("ws://localhost:8086/socket", "websocket");

	try {
		socket.onopen = function() {
			$('#ws-status').html('Socket Connected').css("color", "green");
			// socket.send("event json all");
			socket.send("event json CHANNEL_CREATE");
			socket.send("event json CHANNEL_HANGUP_COMPLETE");
			socket.send("event json CHANNEL_CALLSTATE");
		}

		socket.onmessage =function(msg) {
			// console.log(msg.data);
			var data = JSON.parse(msg.data);
			console.log(data["Event-Name"]);

			eventCallback(data);
		}

		socket.onclose = function(){
			$('#ws-status').html('Socket Disconnected!').css("color", "red");
			console.log("socket disconnected, fallback to event_sink");
			// setInterval("App.channelsController.checkEvent()", 2000);
			setInterval("App.channelsController.checkXMLEvent()", 2000);
		}
	} catch(exception) {
		alert('Error' + exception);
	}

	</script>
</body>
</html>