90 lines
2.0 KiB
JavaScript
90 lines
2.0 KiB
JavaScript
$(function() {
|
|
// start the icon carousel
|
|
$('#iconCarousel').carousel({
|
|
interval: 5000
|
|
});
|
|
|
|
// make code pretty
|
|
window.prettyPrint && prettyPrint();
|
|
|
|
// inject twitter & github counts
|
|
$.ajax({
|
|
url: 'http://api.twitter.com/1/users/show.json',
|
|
data: {screen_name: 'fortaweso_me'},
|
|
dataType: 'jsonp',
|
|
success: function(data) {
|
|
$('#followers').html(data.followers_count);
|
|
}
|
|
});
|
|
$.ajax({
|
|
url: 'https://api.github.com/repos/fortawesome/Font-Awesome',
|
|
dataType: 'jsonp',
|
|
success: function(data) {
|
|
$('#watchers').html(data.data.watchers);
|
|
$('#forks').html(data.data.forks);
|
|
}
|
|
});
|
|
|
|
|
|
|
|
|
|
|
|
var firstInHistory = true;
|
|
|
|
var MainView = Backbone.View.extend({
|
|
el: $("div.container"),
|
|
|
|
modalTemplate: _.template($("#modal-template").html()),
|
|
|
|
events:{
|
|
"click ul.the-icons > li": "iconClicked"
|
|
},
|
|
|
|
iconClicked: function(event) {
|
|
event.preventDefault();
|
|
|
|
var $item = $(event.currentTarget);
|
|
var $iconName = $item.find("i").attr("class");
|
|
_gaq.push(['_trackEvent', 'iconClick', $iconName]);
|
|
|
|
mainRouter.navigate("icon/" + $iconName, {trigger: true});
|
|
firstInHistory = false;
|
|
}
|
|
});
|
|
|
|
|
|
var MainRouter = Backbone.Router.extend({
|
|
routes: {
|
|
"": "checkModal",
|
|
"icon/:iconName": "showIcon"
|
|
},
|
|
|
|
checkModal: function() {
|
|
var $modal = $("div.modal");
|
|
|
|
if ($modal.length > 0) {
|
|
$modal.modal("hide");
|
|
}
|
|
},
|
|
|
|
showIcon: function(iconName) {
|
|
var $modal = $(mainView.modalTemplate({"iconName": iconName}));
|
|
|
|
$modal.modal("show");
|
|
$modal.on('hidden', function () {
|
|
$modal.remove();
|
|
if (firstInHistory) {
|
|
mainRouter.navigate("/", {trigger: false});
|
|
firstInHistory = false;
|
|
} else {
|
|
window.history.back();
|
|
}
|
|
})
|
|
}
|
|
});
|
|
|
|
var mainView = new MainView();
|
|
var mainRouter = new MainRouter();
|
|
Backbone.history.start({pushState : false});
|
|
});
|