<%@ Page Title="" Language="C#" Inherits="System.Web.Mvc.ViewPage" MasterPageFile="~/Views/Shared/Site.Master" %> <asp:Content runat="server" ID="Title" ContentPlaceHolderID="TitleContent">Browse</asp:Content> <asp:Content runat="server" ID="Main" ContentPlaceHolderID="MainContent"> <p> Browse by: </p> <div id="browse-default-menu"> <ul> <li><a href="#" id="browse-game">Game</a></li> <li><a href="#" id="browse-system">System</a></li> <li><a href="#" id="browse-category">Category</a></li> <li><a href="#" id="browse-publisher">Publisher</a></li> </ul> </div> <div id="browse-default-container"> <p> <a href="#" id="show-default-menu">Back</a> </p> <div id="browse-default-content"></div> </div> </asp:Content> <asp:Content ContentPlaceHolderID="DeferrableScripts" runat="server"> <script type="text/javascript">//<![CDATA[ $(document).ready(function() { var $browseMenu = $("#browse-default-menu"); var $container = $("#browse-default-container"); var $content = $("#browse-default-content"); var games = [], systems = [], publishers = [], categories = []; var renderData = function(data, cellRenderer, cellsPerRow) { var $table = $("<table/>"), $row = $("<tr/>"); for (var i = 0, len = data.length; i < len; i++) { if (i % cellsPerRow === 0) { if (i > 0) { $table.append($row); } $row = $("<tr/>"); } $row.append($("<td/>").html(cellRenderer(data[i], i))); } if (data.length > 0) { $table.append($row); } $content.append($table); }; var gameCellRenderer = function() { var $template = $("<a/>"); return function(game, count) { return $template .clone() .attr("href", "/browse/game/" + game.Id) .text(game.Name); }; }(); var systemCellRenderer = function() { var $template = $("<a/>"); return function(system, count) { return $template .clone() .attr("href", "/browse/system/" + system.Id) .attr("title", system.Name) .text(system.Abbreviation); }; }(); $("#show-default-menu").click(function() { $content.empty(); $container.hide(); $browseMenu.show(); return false; }); $("#browse-game").click(function() { $browseMenu.hide(); $container.show(); var cellsPerRow = 8; if (games.length === 0) { $.ajax("/api/game/all", { data: { sort: "alphabetical" }, success: function(data, status, $xhr) { if (data.Error !== null) { alert(data.Error); return; } games = data.Data.games; renderData(games, gameCellRenderer, cellsPerRow); } }); } else { renderData(games, gameCellRenderer, cellsPerRow); } return false; }); $("#browse-system").click(function() { $browseMenu.hide(); $container.show(); var cellsPerRow = 12; if (systems.length === 0) { $.ajax("/api/system/all", { data: { sort: "alphabetical" }, success: function(data, status, $xhr) { if (data.Error !== null) { alert(data.Error); return; } systems = data.Data.systems; renderData(systems, systemCellRenderer, cellsPerRow); } }); } else { renderData(systems, systemCellRenderer, cellsPerRow); } return false; }); }); //]]></script> </asp:Content>