1
+ var showing = 0 ;
2
+ var drib = {
3
+ host : 'http://api.dribbble.com' ,
4
+ popular : '/shots/popular' ,
5
+ everyone : '/shots/everyone' ,
6
+ debuts : '/shots/debuts' ,
7
+ player : '/players/' ,
8
+
9
+
10
+
11
+ getPopular : function ( ) {
12
+ var url = drib . host + drib . popular ;
13
+ showing = 0 ;
14
+ this . req ( url , function ( data ) {
15
+ console . log ( data ) ;
16
+ popularShots . buildShots ( data . shots ) ;
17
+
18
+ } ) ;
19
+ } ,
20
+ getEveryone : function ( ) {
21
+ showing = 1 ;
22
+ var url = drib . host + drib . everyone ;
23
+ this . req ( url , function ( data ) {
24
+ console . log ( data ) ;
25
+ popularShots . buildShots ( data . shots ) ;
26
+
27
+ } ) ;
28
+ } ,
29
+ getDebuts : function ( ) {
30
+ showing = 2 ;
31
+ var url = drib . host + drib . debuts ;
32
+ this . req ( url , function ( data ) {
33
+ console . log ( data ) ;
34
+ popularShots . buildShots ( data . shots ) ;
35
+
36
+ } ) ;
37
+ } ,
38
+ getPopularNoError : function ( ) {
39
+ var url = drib . host + drib . popular ;
40
+ showing = 4 ;
41
+ this . req ( url , function ( data ) {
42
+ console . log ( data ) ;
43
+ popularShots . buildShots ( data . shots ) ;
44
+
45
+ } ) ;
46
+ } ,
47
+
48
+ getFollowing : function ( playerId ) {
49
+ showing = 3 ;
50
+ $ ( '.subInfo' ) . html ( "<span style='color:#68a4f5'>searching...<span>" ) ;
51
+ var url = drib . host + drib . player + playerId + '/shots/following' ;
52
+ this . req ( url , function ( data ) {
53
+ console . log ( data ) ;
54
+ $ ( '#lookup-player' ) . removeClass ( 'error' ) ;
55
+ getFollowingShots . buildList ( data . shots ) ;
56
+
57
+ } ) ;
58
+ } ,
59
+ req : function ( url , cb ) {
60
+ $ . ajax ( {
61
+ url : url ,
62
+ dataType : 'jsonp' ,
63
+ timeout : 1000 ,
64
+ success : function ( data ) {
65
+ var userName = window . localStorage . getItem ( 'user' ) ;
66
+ console . log ( 'showing ' + showing ) ;
67
+ if ( showing == 3 ) {
68
+ console . log ( 'hello showing' ) ;
69
+ $ ( '.subInfo' ) . html ( "<span style='color:#81ce4d'>Got it!</span> You can also type 'everyone', 'popular' or 'debuts'" ) ;
70
+ $ ( '#lookup-player' ) . removeClass ( ) . addClass ( 'playerList' ) ;
71
+ } else if ( showing == 1 ) {
72
+ console . log ( 'hello everyone' ) ;
73
+ $ ( '.subInfo' ) . html ( "<span style='color:#81ce4d'>Everyone it is!</span> You can also input your username, 'popular' or 'debuts'" ) ;
74
+ $ ( '#lookup-player' ) . removeClass ( ) . addClass ( 'everyone' ) ;
75
+ } else if ( showing == 2 ) {
76
+ console . log ( 'hello debuts' ) ;
77
+ $ ( '.subInfo' ) . html ( "<span style='color:#81ce4d'>We're showing Debuts!</span> You can also input your username, 'everyone' or 'popular'" ) ;
78
+ $ ( '#lookup-player' ) . removeClass ( ) . addClass ( 'debuts' ) ;
79
+ } else if ( showing == 4 ) {
80
+ console . log ( 'hello popular' ) ;
81
+ $ ( '.subInfo' ) . html ( "<span style='color:#81ce4d'>We're showing Popular!</span> You can also input your username, 'everyone' or 'debuts'" ) ;
82
+ $ ( '#lookup-player' ) . removeClass ( ) . addClass ( 'popular' ) ;
83
+ }
84
+
85
+ if ( ! $ ( "#lookup-player" ) . val ( ) ) {
86
+ $ ( '#lookup-player' ) . addClass ( 'error' ) ;
87
+ $ ( '.subInfo' ) . html ( "Input your username and we'll show the players you're following or input 'everyone', 'popular' or 'debuts' to see those feeds. We'll show popular by default" ) ;
88
+ }
89
+ cb ( data ) ;
90
+ } ,
91
+ error : function ( x , t , m ) {
92
+ if ( t === "timeout" ) {
93
+ $ ( '#lookup-player' ) . removeClass ( 'playerList' ) . addClass ( 'error' ) ;
94
+ $ ( '.subInfo' ) . html ( "<span style='color:#ce4d73'>We're sorry, we couldn't find that username. We'll show you the popular shots in the meantime<span>" ) ;
95
+ console . log ( 'timeout error' ) ;
96
+ drib . getPopular ( ) ;
97
+ } else {
98
+ $ ( '#lookup-player' ) . addClass ( 'error' ) ;
99
+ console . log ( 'else timeout error' ) ;
100
+ drib . getPopular ( ) ;
101
+ }
102
+ }
103
+ } ) ;
104
+ }
105
+ }
106
+
107
+ var popularShots = {
108
+ container :$ ( '#picsList' ) ,
109
+ buildShots : function ( shots ) {
110
+ var imgs = '' ;
111
+ for ( var i = 0 ; i < 6 ; i ++ ) {
112
+ console . log ( shots [ i ] ) ;
113
+ imgs += '<li class="animate fadeInUp item" style="-webkit-animation-delay: ' + i * 150 + 'ms;">' +
114
+ ' <div class="picture">' +
115
+ ' <img class="shot" src="' + shots [ i ] . image_url + '" style="display:none;"/>' +
116
+ ' <div class="underlay">' +
117
+ ' <a class="r" href="' + shots [ i ] . url + '"><img src="css/img/arrow.png" /></a>' +
118
+ ' <a class="i" href="' + shots [ i ] . player . url + '"><img src="' + shots [ i ] . player . avatar_url + '" /></a>' +
119
+
120
+ ' <div class="shotStats">' +
121
+ ' <span class="name">' + shots [ i ] . player . name + '</span>' +
122
+ ' <span class="likes">' + shots [ i ] . likes_count + ' Likes</span>' +
123
+ ' </div>' +
124
+ ' </div>' +
125
+ ' <div class="slits">' +
126
+ ' <div>' +
127
+ ' <b></b>' +
128
+ ' <em></em>' +
129
+ ' <img src="' + shots [ i ] . image_url + '">' +
130
+ ' </div>' +
131
+ ' <div>' +
132
+ ' <b></b>' +
133
+ ' <em></em>' +
134
+ ' <img src="' + shots [ i ] . image_url + '">' +
135
+ ' </div>' +
136
+ ' </div>' +
137
+ ' </div>' +
138
+ '</li>' ;
139
+ }
140
+ this . container . html ( imgs ) ;
141
+ }
142
+ }
143
+
144
+ var getFollowingShots = {
145
+ buildList : function ( shots ) {
146
+ this . container = $ ( '#picsList' ) ;
147
+ var imgs = '' ;
148
+ for ( var i = 0 ; i < 6 ; i ++ ) {
149
+ console . log ( shots [ i ] ) ;
150
+ imgs += '<li class="animate fadeInUp item" style="-webkit-animation-delay: ' + i * 150 + 'ms;">' +
151
+ ' <div class="picture">' +
152
+ ' <img class="shot" src="' + shots [ i ] . image_url + '" style="display:none;"/>' +
153
+ ' <div class="underlay">' +
154
+ ' <a class="r" href="' + shots [ i ] . url + '"><img src="css/img/arrow.png" /></a>' +
155
+ ' <a class="i" href="' + shots [ i ] . player . url + '"><img src="' + shots [ i ] . player . avatar_url + '" /></a>' +
156
+
157
+ ' <div class="shotStats">' +
158
+ ' <span class="name">' + shots [ i ] . player . name + '</span>' +
159
+ ' <span class="likes">' + shots [ i ] . likes_count + ' Likes</span>' +
160
+ ' </div>' +
161
+ ' </div>' +
162
+ ' <div class="slits">' +
163
+ ' <div>' +
164
+ ' <b></b>' +
165
+ ' <em></em>' +
166
+ ' <img src="' + shots [ i ] . image_url + '">' +
167
+ ' </div>' +
168
+ ' <div>' +
169
+ ' <b></b>' +
170
+ ' <em></em>' +
171
+ ' <img src="' + shots [ i ] . image_url + '">' +
172
+ ' </div>' +
173
+ ' </div>' +
174
+ ' </div>' +
175
+ '</li>' ;
176
+ }
177
+ this . container . html ( imgs ) ;
178
+ }
179
+ }
180
+
181
+ var user = $ ( '#lookup-player' ) ;
182
+ var ui = {
183
+ init : function ( ) {
184
+ var userName = window . localStorage . getItem ( 'user' ) ;
185
+
186
+ user . blur ( function ( ) {
187
+ var val = $ ( this ) . val ( ) ;
188
+ if ( val == 'debuts' ) {
189
+ window . localStorage . setItem ( 'user' , $ ( this ) . val ( ) ) ;
190
+ drib . getDebuts ( ) ;
191
+ return ;
192
+ } else if ( val == 'everyone' ) {
193
+ window . localStorage . setItem ( 'user' , $ ( this ) . val ( ) ) ;
194
+ drib . getEveryone ( ) ;
195
+ return ;
196
+ } else if ( val == 'popular' ) {
197
+ window . localStorage . setItem ( 'user' , $ ( this ) . val ( ) ) ;
198
+ drib . getPopularNoError ( ) ;
199
+ return ;
200
+ } else if ( val == '' ) {
201
+ console . log ( 'setting user to blank' ) ;
202
+ window . localStorage . setItem ( 'user' , '' ) ;
203
+ drib . getPopular ( ) ;
204
+ return ;
205
+ }
206
+
207
+ window . localStorage . setItem ( 'user' , $ ( this ) . val ( ) ) ;
208
+ drib . getFollowing ( $ ( this ) . val ( ) ) ;
209
+ } ) ;
210
+
211
+ user . keyup ( function ( event ) {
212
+ if ( event . keyCode == 13 ) {
213
+ var val = $ ( this ) . val ( ) ;
214
+ if ( val == 'debuts' ) {
215
+ window . localStorage . setItem ( 'user' , $ ( this ) . val ( ) ) ;
216
+ drib . getDebuts ( ) ;
217
+ return ;
218
+ } else if ( val == 'everyone' ) {
219
+ window . localStorage . setItem ( 'user' , $ ( this ) . val ( ) ) ;
220
+ drib . getEveryone ( ) ;
221
+ return ;
222
+ } else if ( val == 'popular' ) {
223
+ window . localStorage . setItem ( 'user' , $ ( this ) . val ( ) ) ;
224
+ drib . getPopularNoError ( ) ;
225
+ return ;
226
+ } else if ( val == '' ) {
227
+ console . log ( 'setting user to blank' ) ;
228
+ window . localStorage . setItem ( 'user' , '' ) ;
229
+ drib . getPopular ( ) ;
230
+ return ;
231
+ }
232
+
233
+
234
+ window . localStorage . setItem ( 'user' , $ ( this ) . val ( ) ) ;
235
+ drib . getFollowing ( $ ( this ) . val ( ) ) ;
236
+ }
237
+ } ) ;
238
+
239
+ if ( userName !== null && userName !== '' ) {
240
+ user . val ( userName ) ;
241
+ if ( userName == 'debuts' ) {
242
+ drib . getDebuts ( ) ;
243
+ return ;
244
+ } else if ( userName == 'everyone' ) {
245
+ drib . getEveryone ( ) ;
246
+ return ;
247
+ } else if ( userName == 'popular' ) {
248
+ drib . getPopularNoError ( ) ;
249
+ return ;
250
+ } else {
251
+ console . log ( 'getFollowing' ) ;
252
+ drib . getFollowing ( userName ) ;
253
+ return ;
254
+ }
255
+ } else {
256
+ drib . getPopular ( ) ;
257
+ }
258
+
259
+ }
260
+ }
261
+
262
+ $ ( function ( ) {
263
+ console . log ( 'initialize' ) ;
264
+ ui . init ( ) ;
265
+
266
+
267
+ $ ( "a.settings" ) . click ( function ( ) {
268
+ $ ( ".overlay" ) . fadeIn ( 250 ) ;
269
+ $ ( ".content" ) . removeClass ( 'out' ) . addClass ( 'in' ) . show ( ) ;
270
+ } ) ;
271
+
272
+ $ ( ".close" ) . click ( function ( ) {
273
+ $ ( ".overlay" ) . delay ( 250 ) . fadeOut ( 250 ) ;
274
+ $ ( ".content" ) . removeClass ( 'in' ) . addClass ( 'out' ) . css ( {
275
+ // "display" : "none"
276
+ } ) ;
277
+ } ) ;
278
+
279
+ } ) ;
0 commit comments