﻿<html>
<head>
    <title>Resco Chat Channels</title>
    <meta charset="utf-8">
    <script src="../ClientGlobalContext.js.aspx"></script>
    <script type="text/javascript" src="Context.js"></script>
    <script type="text/javascript" src="RestRequest.js"></script>
	<style>
		body{
			font-family:'Segoe UI', Tahoma, Geneva, Verdana, sans-serif;
		}
		div.channelList {
		}
		div.topic {
		}
		div.inactive {
			text-decoration:underline; 
			color:#808080;
			cursor:pointer;
		}
		div.link {
			text-decoration:underline;
			 color:#0094ff;
			cursor:pointer;
		}
	</style>
</head>
<body>
	<table><tr>
		<td><img src="Chat.png" style="display:inline-block" /></td>
		<td style="vertical-align:top;">
			<div style="font-weight:600; font-size:1.1em;">Chat Channels</div>
			<div class="link" onclick="window.open(Resco.DataProvider.getEditEntityUrl('resco_chattopic'))">Create new...</div>
		</td>
	</tr></table>
	<div id="channelList" role="list">
		<hr />
	</div>
	<script type="text/javascript">
		var query = "?$select=resco_chattopicid,resco_name,resco_regardingobjectentity,statecode&$orderby=statecode,resco_name&$filter=resco_regardingobjectid eq null and not startswith(resco_regardingobjectentity,'@private:')";
		Resco.DataProvider.query("resco_chattopics", query, function (jsonData) {
			var data = JSON.parse(jsonData);
			var results = (data && data.value) ? data.value : [];

			var active = true;
			var hasBroadcast = false;
			for (var i in results) {
				var channel = results[i];
				var editUrl = Resco.DataProvider.getEditEntityUrl("resco_chattopic", channel.resco_chattopicid);
				if (active && channel.statecode != 0) {
					channelList.innerHTML += "<hr/><div>Inactive Channels:</div>";
					active = false;
				}
				var listItem = "<div role='listitem' class='" + (active ? "topic link" : "topic inactive") + "' onclick='window.open(\"" + editUrl + "\")'>" + channel.resco_name + "</div>";
				if (channel.resco_regardingobjectentity == "@broadcast") {
					channelList.innerHTML = "<hr/><div style='float:left;'>Broadcast channel:&nbsp;</div>" + listItem + channelList.innerHTML;
					hasBroadcast = true;
				}
				else
					channelList.innerHTML += listItem;
			}
			if (!hasBroadcast)
				channelList.innerHTML = "<hr/><div class='link' onclick='createBroadcastChannel()'>Create Broadcast Channel...</div>" + channelList.innerHTML;
		}, Xrm.Utility.alertDialog);

		function createBroadcastChannel() {
			var createUrl = Resco.DataProvider.getEditEntityUrl('resco_chattopic');
			createUrl += "&extraqs=" + encodeURIComponent("resco_regardingobjectentity=@broadcast&resco_name=Broadcast");
			window.open(createUrl);
		}
	</script>
</body>
</html>