mirror of
https://github.com/fergalmoran/dss.git
synced 2026-02-12 02:53:58 +00:00
Refactored utils into coffeescript requirejs module
This commit is contained in:
31
index.html
Normal file
31
index.html
Normal file
@@ -0,0 +1,31 @@
|
||||
if (!com) var com = {};
|
||||
if (!com.podnoms) com.podnoms = {};
|
||||
|
||||
com.podnoms.settings = {
|
||||
CHAT_HOST: 'www.deepsouthsounds.com:8081',
|
||||
REALTIME_HOST: 'www.deepsouthsounds.com:8081',
|
||||
REALTIME_PORT: 'www.deepsouthsounds.com:8081',
|
||||
urlRoot: '/api/v1/',
|
||||
liveStreamRoot: 'http://radio.deepsouthsounds.com:8000/mp3',
|
||||
streamInfoUrl: 'http://radio.deepsouthsounds.com:8000/mp3',
|
||||
volume: '50',
|
||||
smDebugMode: false,
|
||||
isDebug: false,
|
||||
drawTimelineOnMix: false,
|
||||
staticUrl: 'http://static.podnoms.com/',
|
||||
urlArgs: false ? "" : "bust="+ (new Date()).getTime(),
|
||||
currentUser: -1,
|
||||
/** simple helper to take an api JSON object and initialise a player item */
|
||||
setupPlayerWrapper: function (id, stream_url, el) {
|
||||
com.podnoms.player.setupPlayer({
|
||||
id: id,
|
||||
boundingEl: $('#mix-container-' + id, el),
|
||||
waveFormEl: $('#waveform-' + id, el),
|
||||
playHeadEl: $('#playhead-player-' + id, el),
|
||||
loadingEl: $('#progress-player-' + id, el),
|
||||
seekHeadEl: $('#player-seekhead', el),
|
||||
playButtonEl: $('#play-pause-button-small-' + id, el),
|
||||
url: stream_url || ""
|
||||
});
|
||||
}
|
||||
};
|
||||
@@ -1,7 +1,4 @@
|
||||
define ['jquery', 'bootstrap']
|
||||
($, bootstrap) ->
|
||||
class Utils
|
||||
|
||||
define ['jquery', 'bootstrap'], ($, bootstrap) ->
|
||||
modal: (url) ->
|
||||
if url.indexOf("#") is 0
|
||||
$(url).modal "open"
|
||||
@@ -20,5 +17,3 @@ define ['jquery', 'bootstrap']
|
||||
com.podnoms.utils.modal "tpl/PlayCountLoginAlert" if (data.play_count isnt 0) and (data.play_count % 1) is 0
|
||||
true
|
||||
|
||||
Utils
|
||||
|
||||
|
||||
33
static/js/app/lib/utils.js
Normal file
33
static/js/app/lib/utils.js
Normal file
@@ -0,0 +1,33 @@
|
||||
// Generated by CoffeeScript 1.3.3
|
||||
(function() {
|
||||
|
||||
define(['jquery', 'bootstrap'], function($, bootstrap) {
|
||||
return {
|
||||
modal: function(url) {
|
||||
if (url.indexOf("#") === 0) {
|
||||
$(url).modal("open");
|
||||
} else {
|
||||
$.get(url, function(data) {
|
||||
return $("<div class=\"modal hide fade\">" + data + "</div>").modal().on("hidden", function() {
|
||||
return $(this).remove();
|
||||
});
|
||||
}).success(function() {
|
||||
return $("input:text:visible:first").focus();
|
||||
});
|
||||
}
|
||||
return true;
|
||||
},
|
||||
checkPlayCount: function() {
|
||||
if (document.cookie.indexOf("sessionId")) {
|
||||
$.getJSON("/ajax/session_play_count", function(data) {
|
||||
if ((data.play_count !== 0) && (data.play_count % 1) === 0) {
|
||||
return com.podnoms.utils.modal("tpl/PlayCountLoginAlert");
|
||||
}
|
||||
});
|
||||
}
|
||||
return true;
|
||||
}
|
||||
};
|
||||
});
|
||||
|
||||
}).call(this);
|
||||
103
static/js/app/views/header.js
Normal file
103
static/js/app/views/header.js
Normal file
@@ -0,0 +1,103 @@
|
||||
// Generated by CoffeeScript 1.3.3
|
||||
|
||||
/*
|
||||
@license
|
||||
|
||||
----------------------------------------------
|
||||
|
||||
Copyright (c) 2012, Fergal Moran. All rights reserved.
|
||||
Code provided under the BSD License:
|
||||
*/
|
||||
|
||||
|
||||
(function() {
|
||||
var __hasProp = {}.hasOwnProperty,
|
||||
__extends = function(child, parent) { for (var key in parent) { if (__hasProp.call(parent, key)) child[key] = parent[key]; } function ctor() { this.constructor = child; } ctor.prototype = parent.prototype; child.prototype = new ctor(); child.__super__ = parent.prototype; return child; };
|
||||
|
||||
define(["underscore", "backbone", "vent", "utils", "text!/tpl/HeaderView"], function(_, Backbone, vent, utils, Template) {
|
||||
var HeaderView;
|
||||
HeaderView = (function(_super) {
|
||||
|
||||
__extends(HeaderView, _super);
|
||||
|
||||
function HeaderView() {
|
||||
return HeaderView.__super__.constructor.apply(this, arguments);
|
||||
}
|
||||
|
||||
HeaderView.prototype.template = _.template(Template);
|
||||
|
||||
HeaderView.prototype.events = {
|
||||
"click #header-play-pause-button": "togglePlayState",
|
||||
"click #header-login-button": "login",
|
||||
"click #header-live-button": "playLive"
|
||||
};
|
||||
|
||||
HeaderView.prototype.initialize = function() {
|
||||
this.render();
|
||||
this.listenTo(vent, "mix:play", this.trackPlaying);
|
||||
return this.listenTo(vent, "mix:pause", this.trackPaused);
|
||||
};
|
||||
|
||||
HeaderView.prototype.login = function() {
|
||||
return utils.modal("tpl/LoginView");
|
||||
};
|
||||
|
||||
HeaderView.prototype.logout = function() {
|
||||
return utils.showAlert("Success", "You are now logged out");
|
||||
};
|
||||
|
||||
HeaderView.prototype.trackChanged = function(data) {
|
||||
$(this.el).find("#track-description").text(data.title);
|
||||
return $(this.el).find("#track-description").attr("href", "#" + data.item_url);
|
||||
};
|
||||
|
||||
HeaderView.prototype.trackPlaying = function(data) {
|
||||
$(this.el).find("#header-play-button-icon").removeClass("icon-play");
|
||||
return $(this.el).find("#header-play-button-icon").addClass("icon-pause");
|
||||
};
|
||||
|
||||
HeaderView.prototype.trackPaused = function(data) {
|
||||
$(this.el).find("#header-play-button-icon").removeClass("icon-pause");
|
||||
return $(this.el).find("#header-play-button-icon").addClass("icon-play");
|
||||
};
|
||||
|
||||
HeaderView.prototype.render = function() {
|
||||
$(this.el).html(this.template());
|
||||
return this;
|
||||
};
|
||||
|
||||
HeaderView.prototype.playLive = function() {
|
||||
var button, ref;
|
||||
ref = this;
|
||||
dssSoundHandler.playLive();
|
||||
_eventAggregator.trigger("track_playing");
|
||||
button = $(this.el).find("#header-play-pause-button");
|
||||
button.data("mode", "pause");
|
||||
return $.getJSON("ajax/live_now_playing/", function(data) {
|
||||
alert(data.title);
|
||||
return $(ref.el).find("#live-now-playing").text(data.title);
|
||||
});
|
||||
};
|
||||
|
||||
HeaderView.prototype.togglePlayState = function() {
|
||||
var button, mode;
|
||||
button = $(this.el).find("#header-play-pause-button");
|
||||
mode = button.data("mode");
|
||||
if (mode === "play") {
|
||||
dssSoundHandler.resumeSound();
|
||||
_eventAggregator.trigger("track_playing");
|
||||
return button.data("mode", "pause");
|
||||
} else {
|
||||
dssSoundHandler.pauseSound();
|
||||
_eventAggregator.trigger("track_paused");
|
||||
return button.data("mode", "play");
|
||||
}
|
||||
};
|
||||
|
||||
return HeaderView;
|
||||
|
||||
})(Backbone.View);
|
||||
return HeaderView;
|
||||
});
|
||||
|
||||
}).call(this);
|
||||
@@ -1,22 +1,26 @@
|
||||
// Generated by CoffeeScript 1.6.2
|
||||
// Generated by CoffeeScript 1.3.3
|
||||
(function() {
|
||||
var __bind = function(fn, me){ return function(){ return fn.apply(me, arguments); }; },
|
||||
__hasProp = {}.hasOwnProperty,
|
||||
__extends = function(child, parent) { for (var key in parent) { if (__hasProp.call(parent, key)) child[key] = parent[key]; } function ctor() { this.constructor = child; } ctor.prototype = parent.prototype; child.prototype = new ctor(); child.__super__ = parent.prototype; return child; };
|
||||
|
||||
define(['moment', 'app', 'vent', 'marionette', 'models/comment/commentCollection', 'views/comment/commentListView', 'text!/tpl/MixListItemView'], function(moment, App, vent, Marionette, CommentsCollection, CommentsListView, Template) {
|
||||
var MixItemView, _ref;
|
||||
|
||||
var MixItemView;
|
||||
MixItemView = (function(_super) {
|
||||
|
||||
__extends(MixItemView, _super);
|
||||
|
||||
function MixItemView() {
|
||||
this.doStart = __bind(this.doStart, this);
|
||||
|
||||
this.renderComments = __bind(this.renderComments, this);
|
||||
|
||||
this.renderGenres = __bind(this.renderGenres, this);
|
||||
|
||||
this.onRender = __bind(this.onRender, this);
|
||||
this.initialize = __bind(this.initialize, this); _ref = MixItemView.__super__.constructor.apply(this, arguments);
|
||||
return _ref;
|
||||
|
||||
this.initialize = __bind(this.initialize, this);
|
||||
return MixItemView.__super__.constructor.apply(this, arguments);
|
||||
}
|
||||
|
||||
MixItemView.prototype.template = _.template(Template);
|
||||
@@ -50,7 +54,6 @@
|
||||
|
||||
MixItemView.prototype.onRender = function() {
|
||||
var id, totalDuration, totalDurationText;
|
||||
|
||||
id = this.model.get('id');
|
||||
if (this.model.get('duration')) {
|
||||
totalDuration = moment.duration(this.model.get('duration'), "seconds");
|
||||
@@ -70,7 +73,6 @@
|
||||
|
||||
MixItemView.prototype.renderGenres = function() {
|
||||
var el;
|
||||
|
||||
el = this.el;
|
||||
$.each(this.model.get("genre-list"), function(data) {
|
||||
$("#genre-list", el).append('<a href="/mixes/' + this.slug + '" class="dss-tag-button">' + this.text + '</a>');
|
||||
@@ -81,7 +83,6 @@
|
||||
|
||||
MixItemView.prototype.renderComments = function() {
|
||||
var comments;
|
||||
|
||||
comments = new CommentsCollection();
|
||||
comments.url = this.model.get("resource_uri") + "comments/";
|
||||
comments.mix_id = this.model.id;
|
||||
@@ -89,7 +90,6 @@
|
||||
comments.fetch({
|
||||
success: function(data) {
|
||||
var content;
|
||||
|
||||
console.log(data);
|
||||
content = new CommentsListView({
|
||||
collection: comments
|
||||
@@ -133,7 +133,6 @@
|
||||
|
||||
MixItemView.prototype.mixFavourite = function() {
|
||||
var app;
|
||||
|
||||
console.log("MixItemView: favouriteMix");
|
||||
app = require('app');
|
||||
app.vent.trigger("mix:favourite", this.model);
|
||||
@@ -142,7 +141,6 @@
|
||||
|
||||
MixItemView.prototype.mixLike = function() {
|
||||
var app;
|
||||
|
||||
console.log("MixItemView: likeMix");
|
||||
app = require('app');
|
||||
app.vent.trigger("mix:like", this.model);
|
||||
@@ -151,7 +149,6 @@
|
||||
|
||||
MixItemView.prototype.mixShare = function(e) {
|
||||
var app, mode;
|
||||
|
||||
console.log("MixItemView: shareMix");
|
||||
mode = $(e.currentTarget).data("mode");
|
||||
console.log("MixItemView: " + mode);
|
||||
|
||||
@@ -1,18 +1,18 @@
|
||||
// Generated by CoffeeScript 1.6.2
|
||||
// Generated by CoffeeScript 1.3.3
|
||||
(function() {
|
||||
var __bind = function(fn, me){ return function(){ return fn.apply(me, arguments); }; },
|
||||
__hasProp = {}.hasOwnProperty,
|
||||
__extends = function(child, parent) { for (var key in parent) { if (__hasProp.call(parent, key)) child[key] = parent[key]; } function ctor() { this.constructor = child; } ctor.prototype = parent.prototype; child.prototype = new ctor(); child.__super__ = parent.prototype; return child; };
|
||||
|
||||
define(['jquery', 'marionette', 'models/user/userCollection', 'views/user/userItemView', 'text!/tpl/UserListView', 'libs/bootstrap/bootpag'], function($, Marionette, UserCollection, UserItemView, Template) {
|
||||
var UserListView, _ref;
|
||||
|
||||
var UserListView;
|
||||
UserListView = (function(_super) {
|
||||
|
||||
__extends(UserListView, _super);
|
||||
|
||||
function UserListView() {
|
||||
this.initialize = __bind(this.initialize, this); _ref = UserListView.__super__.constructor.apply(this, arguments);
|
||||
return _ref;
|
||||
this.initialize = __bind(this.initialize, this);
|
||||
return UserListView.__super__.constructor.apply(this, arguments);
|
||||
}
|
||||
|
||||
UserListView.prototype.template = _.template(Template);
|
||||
@@ -23,7 +23,6 @@
|
||||
|
||||
UserListView.prototype.initialize = function() {
|
||||
var _this = this;
|
||||
|
||||
console.log("UserListView: initialize");
|
||||
this.collection = new UserCollection();
|
||||
this.collection.fetch({
|
||||
|
||||
Reference in New Issue
Block a user