Skip to content

Commit 06cd6dc

Browse files
committed
separate out files a bit
1 parent d05921e commit 06cd6dc

File tree

4 files changed

+336
-329
lines changed

4 files changed

+336
-329
lines changed

app/assets/javascripts/brakkit/brakkit-app.js

+2-329
Original file line numberDiff line numberDiff line change
@@ -9,333 +9,6 @@ Brakkit.alerts = {
99
});
1010
}
1111
};
12-
/* Models */
13-
//base object for all models
14-
Brakkit.Record = SC.Object.extend({
15-
id : null,
16-
isNew : function(){
17-
return !this.get('id');
18-
}.property('id').cacheable(),
19-
save : function(callback){
20-
var self = this,
21-
urlRoot = this.get('urlRoot'),
22-
url = this.get('isNew') ? urlRoot : urlRoot + '/' + this.get('id'),
23-
method = this.get('isNew') ? 'POST' : 'PUT',
24-
data = this.get('attributes');
25-
data._method = method;
26-
27-
$.ajax(url, {
28-
type: 'POST',
29-
data: data, // this.get('attributes'){ bracket: this.get('attributes'), _method: method },
30-
dataType: 'json',
31-
success: function(data, response) {
32-
if (self.get('isNew')) { self.set('id', data.id); }
33-
if(callback){
34-
callback();
35-
}
36-
}
37-
});
38-
return self;
39-
},
40-
deleted : false,
41-
remove : function(){
42-
var self = this;
43-
if(!this.get('isNew')){
44-
var urlRoot = this.get('urlRoot'),
45-
url = urlRoot + '/' + this.get('id'),
46-
method = 'DELETE',
47-
data = {};
48-
data._method = method;
49-
50-
$.ajax(url, {
51-
type: 'POST',
52-
data: data, // this.get('attributes'){ bracket: this.get('attributes'), _method: method },
53-
dataType: 'json',
54-
success: function(data, response) {
55-
console.log(data);
56-
}
57-
});
58-
}
59-
},
60-
//overide these
61-
urlRoot : 'record',
62-
attributes : {}
63-
});
64-
65-
Brakkit.Bracket = Brakkit.Record.extend({
66-
title : "",
67-
teams : [],
68-
committed : false,
69-
urlRoot : '/brackets',
70-
attributes : function(){
71-
var self = this;
72-
return {
73-
bracket : {
74-
title : self.get('title')
75-
}
76-
};
77-
}.property('title', 'teams')
78-
});
79-
80-
Brakkit.Team = Brakkit.Record.extend({
81-
name: "",
82-
seed: 0,
83-
isSelected: false,
84-
attributes : function(){
85-
var self = this;
86-
var _attributes = {
87-
team : {
88-
name : self.get('name'),
89-
seed : self.get('seed')
90-
}
91-
};
92-
console.log(_attributes);
93-
return _attributes;
94-
}.property('name', 'seed'),
95-
urlRoot : '/teams'
96-
});
97-
98-
Brakkit.Round = SC.Object.extend({
99-
matches : []
100-
});
101-
Brakkit.Match = SC.Object.extend({
102-
first_team : null,
103-
second_team : null
104-
});
105-
Brakkit.Seed = {
106-
next : function(){
107-
return Brakkit.TeamsController.get('length') + 1;
108-
}
109-
};
110-
$.ajaxSetup({
111-
//'beforeSend': function(xhr) {xhr.setRequestHeader("Accept", "text/javascript")}
112-
});
113-
/* Controllers */
114-
// Brackets
115-
Brakkit.BracketsController = SC.ArrayProxy.create({
116-
content : [],
117-
selected : {},
118-
addBracket : function(_title){
119-
var self= this;
120-
var bracket = Brakkit.Bracket.create({
121-
title : _title,
122-
teams : []
123-
});
124-
this.pushObject(bracket);
125-
bracket.save(function(){
126-
self.selectBracket(bracket);
127-
});
128-
},
129-
getBrackets : function(){
130-
var self = this;
131-
$.getJSON('/brackets',function(data, status, xhr){
132-
data.forEach(function(value){
133-
var bracket = Brakkit.Bracket.create(value);
134-
self.pushObject(bracket);
135-
});
136-
if(self.get('length') === 0){
137-
$('#new-bracket').show();
138-
} else {
139-
self.selectBracket(self.objectAt(0));
140-
}
141-
});
142-
},
143-
selectBracket : function(bracket){
144-
//set the current bracket
145-
Brakkit.BracketsController.set('selected', bracket);
146-
$.getJSON('/brackets/' + bracket.get('id'), function(data){
147-
Brakkit.TeamsController.getTeams();
148-
});
149-
},
150-
startup : function(){
151-
Brakkit.BracketsController.getBrackets();
152-
}
153-
});
154-
Brakkit.BracketController = SC.Object.create({
155-
contentBinding : "Brakkit.BracketsController.selected"
156-
});
157-
15812
$(function(){
159-
Brakkit.BracketsController.startup();
160-
});
161-
162-
//Teams
163-
Brakkit.TeamsController = SC.ArrayProxy.create({
164-
content: [],
165-
getTeams : function(){
166-
var self = this;
167-
console.log('getting teams');
168-
var c = [];
169-
$.getJSON('/teams', function(data){
170-
console.log(data);
171-
for(var i=0; i<data.length; i++){
172-
c.pushObject(Brakkit.Team.create(data[i]));
173-
}
174-
175-
// data.forEach(function(value){
176-
// console.log(value);
177-
// c.push(Brakkit.Team.create(value));
178-
// });
179-
});
180-
self.set('content', c);
181-
}.observes(),
182-
addTeam: function(_name, _seed){
183-
var team = Brakkit.Team.create({
184-
name : _name,
185-
seed : Brakkit.Seed.next()
186-
});
187-
this.pushObject(team);
188-
team.save();
189-
},
190-
reseed : function(){
191-
var seed = 1;
192-
this.content.forEach(function(value){
193-
value.set('seed', seed);
194-
value.save();
195-
seed = seed + 1;
196-
});
197-
},
198-
removeSelected: function(){
199-
var self = this;
200-
var numberToDelete = this.content.filter(function(value){
201-
return value.get('isSelected');
202-
}).forEach(function(value){
203-
self.removeObject(value);
204-
value.remove();
205-
});
206-
self.reseed();
207-
}
208-
});
209-
210-
211-
Brakkit.Eliminator = {
212-
eliminate : function(from){
213-
var divisor = from < 4 ? 2 : 4;
214-
if(from % divisor === 0){
215-
return 0;
216-
}
217-
var matches = [];
218-
for(var i=0; i <= from/2; i++){
219-
if((from - i) % divisor === 0){
220-
matches.push(i);
221-
}
222-
}
223-
return matches[matches.length-1];
224-
}
225-
};
226-
227-
//Rounds
228-
Brakkit.RoundsController = SC.ArrayProxy.create({
229-
setRounds : function(){
230-
// var bracket = Brakkit.BracketController.get('content');
231-
// var teams = Brakkit.TeamsController.get('content');
232-
// var teamsAllocated = 0;
233-
// if(bracket && teams){
234-
// var rounds = [];
235-
// var numberOfTeams = teams.get('length');
236-
// //the first round of the tournament has to even out the number of remaining teams
237-
// //make sure we're playing the exact number of teams that, after elimination, will yeild a multiple of 4
238-
// //ex: if there are 17 team, eliminate 5 teams in the first round to yeild 12 remaining teams in the second
239-
// var teamsToEliminate = Brakkit.Eliminator.eliminate(numberOfTeams);
240-
// //Make the teams with the highest seed compete in the first round of elimination
241-
// //teams with higher seeds will automatically advance to the next round
242-
// var seedThreshold = numberOfTeams - teamsToEliminate;
243-
// var teamsInFirstRound = teams.filter(function(item){
244-
// return item.get('seed') > seedThreshold;
245-
// });
246-
// //if we already have a nice number of teams
247-
// if(teamsInFirstRound.length == 0){
248-
// //Add all the teams!
249-
// teamsInFirstRound = teams;
250-
// }
251-
// //create the first round
252-
// rounds.push(
253-
// Brakkit.Round.create({
254-
// teams : teamsInFirstRound
255-
// })
256-
// );
257-
// //create the second round
258-
// if(teamsInFirstRound.length < numberOfTeams){
259-
// var teamsInSecondRound = teams.filter(function(item){
260-
// return item.get('seed') <= seedThreshold;
261-
// })
262-
// rounds.push(
263-
// Brakkit.Round.create({
264-
// teams : teamsInSecondRound
265-
// })
266-
// )
267-
// }
268-
// if(rounds[0].get('teams').length + rounds[1].get('teams').length != numberOfTeams){
269-
// alert("Unable to allocate all teams");
270-
// }
271-
// Brakkit.RoundsController.set('content', rounds);
272-
// }
273-
}.observes("Brakkit.BracketController.content"),
274-
content : []
275-
});
276-
277-
/* Views */
278-
//Brackets
279-
Brakkit.BracketSelectBox = {
280-
show : function(){
281-
$('#bracket-list-wrapper').show();
282-
$(document).click(Brakkit.BracketSelectBox.hide);
283-
},
284-
hide : function(){
285-
$('#bracket-list-wrapper').hide();
286-
$(document).unbind('click', Brakkit.BracketSelectBox.hide);
287-
}
288-
};
289-
Brakkit.BracketSelectView = SC.View.extend({
290-
click : function(){
291-
Brakkit.BracketSelectBox.show();
292-
}
293-
});
294-
Brakkit.BracketTitleListItemView = SC.View.extend({
295-
mouseDown : function(){
296-
Brakkit.BracketsController.selectBracket(this.get('content'));
297-
}
298-
});
299-
Brakkit.NewBracketListItem = SC.View.extend({
300-
mouseDown : function(){
301-
Brakkit.BracketSelectBox.hide();
302-
$('#new-bracket').fadeIn();
303-
}
304-
});
305-
Brakkit.NewBracketTitleView = SC.TextField.extend({
306-
insertNewline : function(){
307-
var bracketTitle = this.get('value');
308-
if(bracketTitle){
309-
Brakkit.BracketsController.addBracket(bracketTitle);
310-
$('#new-bracket').fadeOut();
311-
}
312-
}
313-
});
314-
315-
316-
//Teams
317-
Brakkit.AddTeamView = SC.TextField.extend({
318-
insertNewline: function(){
319-
var teamName = this.get('value');
320-
if(teamName){
321-
Brakkit.TeamsController.addTeam(teamName, 0);
322-
this.set('value', '');
323-
}
324-
}
325-
});
326-
327-
Brakkit.TeamNamesListView = SC.CollectionView.extend({
328-
});
329-
330-
Brakkit.TeamNameListItemView = SC.View.extend({
331-
mouseDown : function(){
332-
this.parentView.get('content').set('isSelected', !this.parentView.get('content').get('isSelected'));
333-
}
334-
});
335-
336-
Brakkit.DeleteSelectedTeamsButtonView = SC.Button.extend({
337-
target : "Brakkit.TeamsController",
338-
action : "removeSelected"
339-
});
340-
341-
Brakkit.alerts.setHideTimeout();
13+
Brakkit.alerts.setHideTimeout();
14+
});

0 commit comments

Comments
 (0)