Skip to content

Commit

Permalink
Loading template servers from at start
Browse files Browse the repository at this point in the history
  • Loading branch information
swestwood committed Jun 5, 2013
1 parent c95825a commit f4ccf10
Show file tree
Hide file tree
Showing 13 changed files with 161 additions and 40 deletions.
8 changes: 5 additions & 3 deletions home/compiled/init.js

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

23 changes: 22 additions & 1 deletion home/index.html
Original file line number Diff line number Diff line change
Expand Up @@ -70,7 +70,28 @@ <h5>Spring 2013, Stanford Senior Project</h5>
<div class="span1">
</div>
<div class="span10 goto-server-wrapper ">
<h5 class="goto-server"><input id="serverName" placeholder="Server Name?"> </input> <a class='btn btn-primary' id="create-server" target="_blank" href="/server/">Create PeerServer</a></h5>
<div class="goto-server">

<input id="serverName" placeholder="Server Name?"> </input>



<div class="btn-group">
<a class="btn btn-primary dropdown-toggle" class="create-server" target="_blank" data-toggle="dropdown" href="/server/">
Create PeerServer
<span class="caret"></span>
</a>
<ul class="dropdown-menu">
<li><a class="create-server" target="_blank" data-tmpl="blank" href="/server/">Empty Template</a></li>
<!-- <li><a class="create-server" target="_blank" data-tmpl="demo" href="/server/">Demo Template</a></li> -->
<li><a class="create-server" target="_blank" data-tmpl="accounts" href="/server/">Accounts Template</a></li>
<li><a class="create-server" target="_blank" data-tmpl="voting" href="/server/">Voting Template</a></li>
</ul>
</div>

<!--
<a class='btn btn-primary' id="create-server" target="_blank" href="/server/">Create PeerServer</a> -->

<p><small>(Use <a href="http://www.mozilla.org/en-US/firefox/beta/" target="_blank">Firefox Beta</a> (version 22.0) until June 25, 2013)</small></p>
</div>
<div class="span1">
Expand Down
6 changes: 4 additions & 2 deletions home/init.coffee
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,8 @@ $(document).ready ->
name = $('#serverName').val()
window.location.href = "/server/" + name

$("#create-server").click (evt) ->
$(".create-server").click (evt) ->
name = $('#serverName').val()
this.href = "/server/" + name
template = $(this).attr("data-tmpl")
newLink = "/server/" + name + "?template=" + template
this.href = newLink
4 changes: 4 additions & 0 deletions server.js
Original file line number Diff line number Diff line change
Expand Up @@ -38,6 +38,10 @@ app.get('/server/:filename(*)', function(req, res) {
}
});

app.get('/template/:filename(*)', function(req, res) {
res.sendfile(__dirname + '/sample_servers/' + req.params.filename + '.zip');
});

app.get('/connect/:serverid(*)', function(req, res) {
var serverid = req.params.serverid;
res.sendfile(__dirname + '/client/index.html');
Expand Down
1 change: 1 addition & 0 deletions server/index.html
Original file line number Diff line number Diff line change
Expand Up @@ -42,6 +42,7 @@
<script src="/server/js/compiled/UserSessions.js"></script>
<script src="/server/js/compiled/ServerAge.js"></script>
<script src="/server/js/compiled/ServerConnectionData.js"></script>
<script src="/server/js/compiled/ServerTemplate.js"></script>

<script src="/shared/compiled/util.js"></script>
<script src="/shared/compiled/event_transmitter.js"></script>
Expand Down
15 changes: 14 additions & 1 deletion server/js/AppView.coffee
Original file line number Diff line number Diff line change
Expand Up @@ -40,6 +40,18 @@ class window.AppView extends Backbone.View
updateConnectionCount: (count) =>
@connectionDataView.model.set("count", count)


handleZipFile: (file) =>
reader = new FileReader()
reader.onload = (evt) =>
new ClientServerUnarchiver(
serverFileCollection: @serverFileCollection,
routeCollection: @routeCollection,
userDatabase: @userDatabase,
contents: evt.target.result)
reader.readAsArrayBuffer(file)


renderTopbarButtons: =>
$(".topbar-buttons").remove()
$(".topbar").append(@tmplTopbarButtons)
Expand Down Expand Up @@ -68,7 +80,8 @@ class window.AppView extends Backbone.View
@serverFileCollectionView = new ClientServerCollectionView(
serverFileCollection: @serverFileCollection,
routeCollection: @routeCollection,
userDatabase: @userDatabase)
userDatabase: @userDatabase,
handleZipFcn: @handleZipFile)

@archiver = new ClientServerArchiver(
serverName: @serverID,
Expand Down
14 changes: 2 additions & 12 deletions server/js/ClientServerCollectionView.coffee
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@ class window.ClientServerCollectionView extends Backbone.View
@serverFileCollection = options.serverFileCollection
@routeCollection = options.routeCollection
@userDatabase = options.userDatabase

@handleZipFcn = options.handleZipFcn
@activeView = null

@fileViewContainer = @$("#file-view-container")
Expand Down Expand Up @@ -248,7 +248,7 @@ class window.ClientServerCollectionView extends Backbone.View

handleFile: (file) =>
if file.type is "application/zip"
@handleZipFile(file)
@handleZipFcn(file)
return

reader = new FileReader()
Expand All @@ -266,16 +266,6 @@ class window.ClientServerCollectionView extends Backbone.View
@serverFileCollection.add(serverFile)
serverFile.save()

handleZipFile: (file) =>
reader = new FileReader()
reader.readAsArrayBuffer(file)
reader.onload = (evt) =>
new ClientServerUnarchiver(
serverFileCollection: @serverFileCollection,
routeCollection: @routeCollection,
userDatabase: @userDatabase,
contents: evt.target.result)

handleFileChanged: (model) =>
model.save(hasBeenEdited: true)
@showInitialSaveNotification()
Expand Down
24 changes: 24 additions & 0 deletions server/js/ServerTemplate.coffee
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
''' Loads a template from the name of a zip that lives on the server.
'''

class window.ServerTemplateModel extends Backbone.Model

initialize: (options) ->
@handleZipFcn = options.handleZipFcn
@templateUri = options.templateUri
if @templateUri isnt "blank"
@handleTemplate()

handleTemplate: =>
# Use XML so that zip encodings don't break.
request = new XMLHttpRequest()
request.open("GET", "/template/" + @templateUri, true)
request.responseType = 'blob';

_this = @
request.onreadystatechange = (evt) ->
if this.readyState is 4 and this.status is 200
_this.handleZipFcn(this.response)
if this.readyState is 4 and this.status is 404
console.error "Error loading template."
request.send()
20 changes: 19 additions & 1 deletion server/js/compiled/AppView.js

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

20 changes: 2 additions & 18 deletions server/js/compiled/ClientServerCollectionView.js

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

47 changes: 47 additions & 0 deletions server/js/compiled/ServerTemplate.js

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

12 changes: 10 additions & 2 deletions server/js/compiled/init.js

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

7 changes: 7 additions & 0 deletions server/js/init.coffee
Original file line number Diff line number Diff line change
Expand Up @@ -14,3 +14,10 @@ $(document).ready ->
routeCollection: routeCollection,
appView: appView,
userDatabase: userDatabase)

params = URI.parseQuery(document.location.search)
if _.has(params, "template") and params.template isnt "blank"
templateUri = params.template
serverTemplate = new ServerTemplateModel(
templateUri: templateUri,
handleZipFcn: appView.handleZipFile)

0 comments on commit f4ccf10

Please sign in to comment.