@@ -9,333 +9,6 @@ Brakkit.alerts = {
9
9
} ) ;
10
10
}
11
11
} ;
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
-
158
12
$ ( 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