diff options
Diffstat (limited to 'syte/static/js/components/dribbble.js')
-rw-r--r-- | syte/static/js/components/dribbble.js | 53 |
1 files changed, 53 insertions, 0 deletions
diff --git a/syte/static/js/components/dribbble.js b/syte/static/js/components/dribbble.js new file mode 100644 index 0000000..7c2ed59 --- /dev/null +++ b/syte/static/js/components/dribbble.js @@ -0,0 +1,53 @@ + +function setupDribbble(url, el) { + var href = el.href; + + if ($('#dribbble-profile').length > 0) { + window.location = href; + return; + } + + var params = url.attr('path').split('/').filter(function(w) { + if (w.length) + return true; + return false; + }) + + if (params.length == 1) { + var username = params[0]; + + var spinner = new Spinner(spin_opts).spin(); + $('#dribbble-link').append(spinner.el); + + require(["json!/dribbble/" + username, "text!templates/dribbble-view.html"], + function(dribbble_data, dribbble_view) { + if (dribbble_data.message || dribbble_data.length == 0) { + window.location = href; + return; + } + + var template = Handlebars.compile(dribbble_view); + + var user = dribbble_data.shots[0].player; + user.following_count = numberWithCommas(user.following_count); + user.followers_count = numberWithCommas(user.followers_count); + user.likes_count = numberWithCommas(user.likes_count); + + var template_data = { + "user": user, + "shots": dribbble_data.shots + } + + $(template(template_data)).modal().on('hidden', function () { + $(this).remove(); + adjustSelection('home-link'); + }) + + spinner.stop(); + }); + + return; + } + + window.location = href; +} |